Errata

Docker: Up & Running

Errata for Docker: Up & Running, Third Edition

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 196
2nd paragraph

example shows" /mongodb/docker" and look like the one level only, but the  following description mentioned" two levels", could you please clarify which one is correct?

Sophia  Jul 30, 2025  Aug 15, 2025
Printed
Page 151
middle of 3rd paragraph

example shows" "stream":"stderr" but the following description mentioned" not stderr", could you please clarify which one is correct?

Sophia  Jul 30, 2025  Aug 15, 2025
O'Reilly learning platform
Page 7. Debugging Containers > Controlling Processes
6th Paragraph

"Unix single handling" should be "Unix signal handling"

Madhav Kumar  Jun 01, 2025  Aug 15, 2025
ePub
Page Environment Variables as Configuration
Text "You can then restart the container after adding a single instance of the --env argument to the previous docker container run command:"

My understanding, thanks to the book, is that I am _not_ "restarting" this container by:

1. Stopping the running container, then
2. Issuing a fresh `docker container run` command.

I am, in fact, starting a _new_ container that has different properties to the one that I stopped.

Loving the book so far, thank you.

John Noble  May 20, 2025  Aug 15, 2025
PDF
Page Chapter 10: Containers at Scale
Docker Swarm Mode section

Usage of the 'docker -H...' command, via Worker nodes, assumes OpenSSL, x509, and TLS configuration on users machines. This is an advanced topic and not all machines are configured in this manner.

When issuing this command, an unconfigured machine, will recieve "TLS handshake" errors as well as the "Is the docker daemon running?" error - vague enough to not realize it's actually a TLS issue.

For configuration details, see the official Docker documentation "Engine/Security/Protect-Access/" under the header "Use TLS (HTTPS) to protect the Docker daemon socket"

Using alternative sockets (such as unix://, tcp://, etc.) as per the Docker documentation also does not work.

Please update section with either a link to setting up this kind of configuration or provide examples that do not require this elaborate configuration to work.

Peter Saumur  Mar 11, 2025  Aug 15, 2025
PDF
Page Exploring Docker Compose
193

When cloning the git repository, for the rocketchat-hubot-demo, from the book on page 193, the included 'docker-compose.yaml' file does not match the example shown here.

This 'docker-compose.yaml' file *does* however seem to match the 'docker-compose-default.yaml' file later referred to on page 207

Running the current supplied file ("default"), the zmachine and hubot bots appear in the application, after composing and running, however the bots do not function (running . as the alias for 'hubot' and z for 'zmachine' + commands does nothing).

Running the copy/pasted text from page 193, composing and running, seems to run the application but it prompts you with an administrator page, to create an administrator account, and is minus the bots (!)

Regardless, both yaml files do not seem to work, as expected/documented.

I am running this on Linux Mint 22 with Docker Compose version 2.32.4

Peter Saumur  Feb 14, 2025  Aug 15, 2025
ePub
Page Chapter 8
Figure 8-4

I filled in all fields in steps 1 & 2 (doesn't have "Organization Type" though), but I do not get the option "Continue as standalone" in step 3 which renders this whole chapter as unworkable?

Laurens Vets  Nov 01, 2024  Aug 15, 2025
PDF
Page Page 172
the first command `docker container run`

the command: docker container run --rm -d --name nginx-debug --rm nginx:latest

--rm option used twice in the command, should delete one

ZHANG Xiaodong  Aug 27, 2024  Aug 15, 2025
PDF
Page Page 70
the first command `docker container run`

in the code, `g` means not specific

```
$ docker container run --rm --entrypoint htpasswd g \
-Bbn ${<username>} ${<password>} > htpasswd
```

maybe it should change to:

```
$ docker container run --rm --entrypoint htpasswd httpd:2.4 \
-Bbn ${<username>} ${<password>} > htpasswd
```

ZHANG Xiaodong  Aug 09, 2024  Aug 15, 2025
Printed, ePub, Mobi, O'Reilly learning platform, Other Digital Version
Page Acknowledgements page
8th bullet point down

Raju Gandhi's name is spelled incorrectly. His last name is: Gandhi. The current spelling has Ghandi.

John Devins  Jul 02, 2024  Aug 15, 2025
Page Pausing and Unpausing a Container
2nd paragraph

The text "Unlike stopping a container, where the processes are made aware that they are stopping via the SIGSTOP signal" should be "Unlike stopping a container, where the processes are made aware that they are stopping via the SIGTERM signal".

Juan Ramon Espinosa Lopez  Feb 18, 2024  Mar 08, 2024
O'Reilly learning platform
Page Starting a container
In the first note

The note explains most docker commands will work using the full hash of the container (092c5dc850446324e…a37299d35fc67a042) or even just enough of the hash to make it unique. It finalizes the note saying that the command `docker container start 6b7` would have just worked fine. However, the command would not work as "6b7" is not found anywhere in the container's hash.

Juan Ramon Espinosa Lopez  Feb 14, 2024  Mar 08, 2024
O'Reilly learning platform
Page Starting a container
In the second code block

The command `docker container ls -a --filter ancestor=redis:2.8` lists all containers that share a given image (redis:2.8). However, the output of the command shows `redis:7.0` instead.

Juan Ramon Espinosa Lopez  Feb 14, 2024  Mar 08, 2024
O'Reilly learning platform
Page Starting a container
In the first code block where a redis container is created

The book creates a container using `docker container create -p 6379:6379 redis:2.8`. However, the command's output indicates `redis:7.0` was downloaded.

Juan Ramon Espinosa Lopez  Feb 14, 2024  Mar 08, 2024
O'Reilly learning platform
Page Exploring Docker Compose
Launching Services

Repo "rocketchat-hubot-demo"
volumes:
- mongodb-rocketchat:/bitnami/mongodb

[ERROR]
docker compose up -d
[+] Running 0/0
⠋ Network compose_botnet Created 0.1s
external volume "mongodb-rocketchat" not found

The volume mongodb-rocketchat must be created firstly.

Daniel Mendoza  Jan 30, 2024  Mar 08, 2024
Page Chapter 4, "Anatomy of a Dockerfile"
4th paragraph

To match the the previous sentence and the code snippet that follows

> The following base image will provide you with an Ubuntu Linux image running Node 11.11.x:

should read:

> The following base image will provide you with an Ubuntu Linux image running Node 18.13.0:

Note from the Author or Editor:
Verified and fixed.

Alfred Myers  Nov 20, 2023  Jan 12, 2024
Page Chapter 2. The Docker Landscape - Process simplification
Figure 2.1

The steps detailing the cycle of getting an application to production. Specifically step 7 states: "Loop over steps 5 and 6 n more times". Yet the diagram in Figure 2-1 loops from steps 4 - 6. Depending on the correct process either the step or the diagram should be updated to match each other.

Note from the Author or Editor:
Confirmed. Committing fix.

Fabián Andrés Sánchez Molina  Apr 11, 2023  Apr 13, 2023
Page Layers Are Additive
After 1st paragraph in "Notes" section

using docker image build --squash . This will deleted files actually disappear and...

I think there is a word missing:
"This will make (?) deleted files..."

Note from the Author or Editor:
This already had a minor fix applied, but let's rework this sentence so that it reads like this:

This will cause all of the files that were deleted in the intermediate layers to actually disappear from the final image and can therefore recover a lot of wasted space, but it also means that the whole layer must be downloaded by every system that requires it, even when only a single line of source code was updated, so there are real trade-offs to using this approach.

Anonymous  Jan 06, 2023  Apr 13, 2023