Errata

Docker: Up & Running

Errata for Docker: Up & Running

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

Color key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted By Date submitted Date corrected
Printed
Page 243
Paragraph 4, the code section

The command given creates a pod. The output shows the creation of a deployment. This isn't what happens when you run the command. The output of the command is to create a pod, not create a deployment.

Later sections reference the minikube documentation. In that documentation the given command is actually:

```
kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.4
```
It seems very clear to me that the author was attempting to reproduce minikube tutorial documentation. This deviation from the documentation means that no command that runs after the deviation is correct. Therefore the entire rest of the chapter is in error as well.

`kubectl get all` will not get the deployment, because no deployment is there. Exposing the deployment fails, because no deployment is there. Creating a service isn't possible because no deployment is there. Getting the URL of the service fails because no service is present. Deletion will fail too when cleanup is done, because there is nothing to clean up except the pod which was created (which won't be cleaned up, because the author didn't anticipate that he would list the wrong command, so doesn't clean up the output of that wrong command).

Note from the Author or Editor:
Fixes have been committed to the git repo. This error is due to changes in the kubectl command and deprecated functionality since the book was original released.

(Note: That this is also referring to the Second Edition, even though it was submitted to the first edition's errata page).

Joshua Cole  May 01, 2021 
ch4
n/a

I did more digging, and found that the exact version the "FROM node:0.10" is using is "node:0.10.48". I found that by looking at "docker inspect <image>", and verified it by changed the line in Dockerfile to "FROM node:0.10.48" and seeing the sha for the image is exactly the same (0f9a0e09fbda) as when I used "FROM node:0.10" (see output below). BTW that sha also matches the output in your book, so not sure if it is only failing for me, but it shouldn't because hey, this is docker right? oh well I reported it, thanks for reading.

Sending build context to Docker daemon 15.87kB
Step 1/14 : FROM node:0.10.48
0.10.48: Pulling from library/node
Digest: sha256:c32b4d56f05c69df6e87d06bf7d5f6a5c6a0e7bcdb8e5ffab0e7a1853a90008f
Status: Downloaded newer image for node:0.10.48
---> 0f9a0e09fbda
---SNIPPED FOR BREVITY---

Note from the Author or Editor:
fix commited (to 2nd edition)

pablo  Mar 07, 2019  Mar 22, 2019
ch4
n/a

Oops, I was careless in the errata I just posted a minute ago, and would like to correct my mistake, but cannot edit it.

I meant to say the line in the Dockerfile I changed was "FROM node:0.10", which I had to change to "FROM node:latest" to get it to work.

Thanks

Note from the Author or Editor:
fix committed (to 2nd edition)

pablo  Mar 07, 2019  Mar 22, 2019
ch4
n/a

The image built from the Dockerfile is currently failing to run properly. This is likely due to a minor revision update to version 0.10. Error details are shown below.

Note that when I change the "BASE" line in the Dockerfile to "BASE node:latest", everything works as expected.

Error details follow: When I jump into the v0.10 container and manually run the command (/usr/local/bin/node /data/app/index.js), I see the following error displayed:

root@32c1645004f8:/data/app# /usr/local/bin/node /data/app/index.js

/data/app/node_modules/express/node_modules/debug/src/node.js:120
exports.inspectOpts = Object.keys(process.env).filter(key => {
^
SyntaxError: Unexpected token >
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/data/app/node_modules/express/node_modules/debug/src/index.js:9:19)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)

*NOTE* I am reading it online, so am not shown page numbers. The issue is in Chapter 4.

Note from the Author or Editor:
fix committed (to 2nd edition)

pablo  Mar 07, 2019  Mar 22, 2019
Printed
Page 123
Second last line from the bottom

Second last line at is "expore some of the tools ..." here the first word should be "explore" rather than "expore".

Note from the Author or Editor:
Fixed in upcoming version

Jaysinh Shukla  Nov 19, 2017  Feb 16, 2018
Printed
Page 153
2nd paragraph

If you need to switch to the LXC driver, you should make sure you can support the version Docker that works best with. Running something outside the tested path is likely to encounter issue

In the middle of sentence above,"Support the version Docker that works best with" should be changed to "Support the version that Docker works best with"

Note from the Author or Editor:
This whole sentence has been removed in recent updates to the book.

heok joon son  Apr 15, 2017  Feb 16, 2018
PDF
Page 15
4th pargraph

In the first paragraph of the "Containers Are Lightweight" section, the 4th sentence begins "One the other hand". That should be "On the other hand".

Note from the Author or Editor:
Fixed in an upcoming version.

Robert Rollins  Feb 15, 2017  Feb 16, 2018
Printed
Page 190
2nd paragraph

"Using -p 80:8080 would tell Docker to proxy the container's port 80 on the host's port 8080"

- This is th other way around, should be as follows:
"Using -p 80:8080 would tell Docker to proxy the container's port 8080 on the host's port 80"

Note from the Author or Editor:
fixed in an upcoming release

Rafael Capella  Jan 21, 2017  Feb 16, 2018
Printed
Page 72
1st command output

The below output is not correct if you take into account the command used to create the container "df542767bc17" on pag 71.

root@df542767bc17:/#mount | grep session
/dev/sda9 on /session_data type ext4 (rw,relatime,data=ordered)

The command used to create the container "df542767bc17" is the below:
$ docker run --rm -ti --read-only=true -v /mnt/session_data:/data ubuntu:latest /bin/bash

Therefore, the correct command inside the container should be "mount | grep data" and not "mount | grep session" and the correct output should be:

/dev/sda9 on /data type ext4 (rw,relatime,data=ordered)

Note from the Author or Editor:
fixed in upcoming release.

Rafael Capella  Jan 07, 2017  Feb 16, 2018
Printed
Page 81
4th paragraph

" ... system in essentially the same WAS as any other ..." Should be WAY : " ... system in essentially the same WAY as any other ..."

Note from the Author or Editor:
fixed in an upcoming release

Rafael Capella  Jan 07, 2017  Feb 16, 2018
Printed
Page 92
Center of the page

I suspect that ". . . the Docker API provides a lot more information on the stats endpoint that is shown in the client" should end with "than is shown in the client."

Note from the Author or Editor:
Fixed in upcoming release

Dean Stanton  Aug 23, 2016  Feb 16, 2018
Printed
Page 91
Just below middle of the page

"logs all the containers logs" should be
"logs all the containers' logs".

"but does require that you set up log rotation" would be better as
"but it does require that you set up log rotation".

Note from the Author or Editor:
fixed in upcoming version

Dean Stanton  Aug 23, 2016  Feb 16, 2018
Printed
Page 82
Penultimate full paragraph (i.e., under docker ps example)

"dynamic named assigned" should be
"dynamic name assigned"

Note from the Author or Editor:
fixed in upcoming version.

Dean Stanton  Aug 23, 2016  Feb 16, 2018
Printed
Page 75
First paragraph under the note

"the same was as" should be "the same way as"

Note from the Author or Editor:
fixed in upcoming release

Dean Stanton  Aug 19, 2016  Feb 16, 2018
Printed
Page 72
--default-ulimit example

Suggest explaining that not only does nofile=50:150 set the hard limit of 150 open files (which you do say), it sets the soft limit of 50 files.This will require at least a sentence about what a soft limit is.

https://docs.docker.com/engine/reference/commandline/dockerd/ has a warning about nproc: "nproc is designed by Linux to set the maximum number of processes available to a user, not to a container." So maybe it is not the best (safest) example.

Note from the Author or Editor:
fixed in upcoming release.

Dean Stanton  Aug 19, 2016  Feb 16, 2018
PDF
Page 11
Last 4th line at bottomof page

This line is from Page 11 "Even during the time that that it took us to write this book"

Issue is there are TWO of "THAT" word repeating and I was able to get the 53 page preview download from infoQ website.

Note from the Author or Editor:
Verified and corrected

Rajesh Pradeshik  Apr 12, 2016  Feb 16, 2018
Printed
Page 46
first bullet

package.json is the correct filename rather than package.js

Note from the Author or Editor:
confirmed and corrected

Mark Jones in Boston  Feb 02, 2016  Feb 26, 2016
Printed
Page 51-54
Wh

Chapter, "Storing Images": forgets to actually show how to Store an Image after signing up to
hub.docker.com. Goes off into a side discussion about Mirroring a Registry. I
suggest that a whole section is missing, page 54, immediately before "Mirroring a Registry"
in my opinion it needs roughly a page of text inserted, saying something like:

"Once you've signed up and logged into hub.docker.com, to upload your "example/
docker-node-latest" image, you need to change "example" to be your docker hub
username. There may be other ways of doing this, but it may be easiest to redo the
build, Recall that we cloned the repo via:

git clone https://github.com/spkane/docker-node-hello.git
cd docker-node-hello/

and then we built the docker image. Do that step again, using your
docker hub username, for example if your docker hub username is
fluffybunny, build the image via:

docker build -t fluffybunny/docker-node-hello:latest .

(Note that this build is a lot faster, because most of the layers already exist).

Verify that this image is available locally via:

docker images

Then you can push that image onto the docker hub (or any other
registry that you've now logged into) by:

docker push fluffybunny/docker-node-hello:latest
"

I can't emphasize enough what a bad omission this is - I was following along, and I read and reread the end of chapter 4 several times before realising that the "Storing Images" payoff - i.e. how to achieve that goal - was missing!

Note from the Author or Editor:
This is actually pretty accurate. I'm surprised no one has mentioned this before. I'll work on updating this appropriately.

Duncan White  Dec 16, 2015  Feb 26, 2016
Printed
Page 39
top line

The first line misspells "pieces" as "peices"

Note from the Author or Editor:
This is already fixed.

Duncan White  Dec 16, 2015  Feb 26, 2016
PDF
Page 27
First Paragraph

"It is possible to run Docker on some older releases, but stability
may be an significant issue."

Should be

"It is possible to run Docker on some older releases, but stability
may be a significant issue."

Note from the Author or Editor:
fixed.

Stessy  Dec 11, 2015  Feb 26, 2016
Mobi
Page 1485
Storage Volumes section of Chapter 5

Mounting a storage volume results in "Permission Denied" on my Fedora 22 machine. StackOverflow to the rescue (http://stackoverflow.com/questions/24288616/permission-denied-on-accessing-host-directory-in-docker). It might be worth mentioning that SELinux can restrict this capability unless this command issued first:

su -c "setenforce 0"

Note from the Author or Editor:
fixed

Dale Visser  Nov 03, 2015  Feb 26, 2016
ePub
Chapter 7, Figure 7-1

The forth box says, Container Configured to Run Test Site, where "Test Site" should be "Test Suite".

Note from the Author or Editor:
fixed

andor_chen  Aug 03, 2015  Feb 26, 2016
ePub
Chapter 6, section Inspecting a Container

At the first paragraph, "This is is often useful in debugging", there is a duplication of "is".

Note from the Author or Editor:
fixed

andor_chen  Jul 31, 2015  Feb 26, 2016
ePub
nsenter section

At the second paragraph, the package name "linux-utils" may should be "util-linux".

Note from the Author or Editor:
fixed

andor_chen  Jul 31, 2015  Feb 26, 2016
Printed, PDF, ePub, Mobi, , Other Digital Version
Page ?
?

The ubuntu install directions say to install the docker.io package, which only installs version 1.0.1. Readers need at least Docker 1.5 for some of the demos (like building an image).

Update the directions to point to the new official Docker apt and yum repos, etc.

Sean P. Kane
Sean P. Kane
 
Jul 29, 2015  Feb 26, 2016
PDF
Page xii

have: "It is redifing the very nature of the application itself.

want: ... redefining ...

6bev  Jul 20, 2015  Jul 22, 2015
Printed, PDF, ePub, Mobi, , Other Digital Version
Page 134
Chapter 6/Title

Misspelled Chapter 6 title.
"Exploring Dockert" should be "Exploring Docker"

Jun  Jul 17, 2015  Jul 22, 2015
Printed, PDF, ePub, Mobi, , Other Digital Version
Page 43
5th Paragraph

On page 43 (page 65 of the PDF) the following sentence appears to contain too many instances of the word "the".

"You’ll also start to use the build the variables you defined"

Note from the Author or Editor:
should be "build variables"

David Newman  Jul 06, 2015  Jul 22, 2015
Printed, PDF, ePub, Mobi, , Other Digital Version
Page 65
Note

To develop with Docker on non-Linux platforms, you will need to leverage virtual machines or remote
Linux hosts to provide a Docker server. Boot2Docker and , which are discussed later in this chapter,
provide one approach to solving this issue.



notice where it says " Boot2Docker and ,"

isn't there supposed to be a word after Boot2Docker and? and what?

Note from the Author or Editor:
This was an error in the Indexing markup. The missing work is Vagrant.

Reza  Jun 26, 2015  Jul 22, 2015
Other Digital Version
5
United States

Typo, misspelled "tehcnical"

"In the wake of this emergence rises a wave of innovation that demonstrates Linux containers’ potential to dramatically change application delivery across a variety of computing environments and platforms while leveraging a spectrum of tehcnical skill sets."

Daniel Swartz  Jun 15, 2015  Jul 22, 2015