Docker in Action

Jon Jagger from less code, more software

is an excellent book by Jeff Nickoloff. As usual I'm going to quote from a few pages.

The docker stop command tells the program with PID #1 in the container to halt.
Like most Docker isolation features, you can optionally create containers without their own PID namespace.
If a situation arises where the name of a container needs to change, you can always rename the container with the [docker rename] command.
There are two types of volume... The first type of volume is a bind mount. Bind mount volumes use any user-specified directory or file on the host operating system. The second type is a managed volume. Managed volumes use locations that are created by the Docker daemon in space controlled by the daemon, called Docker managed space.
When you mount a volume on a container file system, it replaces the content that the image provides at that location.
You can copy volumes directly or transitively.
The third situation where you can't use --volumes-from is if you need to change the write permission of a volume.
Remember that containers maintain IP address leases only when they're running. So if a container is stopped or restarted, it will lose its IP lease and any linked containers will have stale data.
It's not common to see minimum requirements published with open source software.
CPU shares differ from memory limits in that they're enforced only when there is contention for time on the CPU.
The union file system on your computer may have a layer count limit. These limits vary, but a limit of 42 layers is common on computers that use the AUFS system.
The most curious thing about this Dockerfile is that the ENTRYPOINT is set to a file that doesn't exist.
You have no way way to specify a bind-mount volume or read-only volume at image build time.
The examples in this chapter use the cURL command-line tool. Because this is a book about Docker, you should use cURL from inside a container.

Visual Lint has been released

Products, the Universe and Everything from Products, the Universe and Everything

Visual Lint is now available. This is a recommended maintenance update for Visual Lint 6.0, and includes the following changes:
  • Migrated the Visual Studio 2017 VSIX extension to VSIX v3 to prevent Visual Studio 2017 from issuing a "This extension is not compatible with Visual Studio 2017" warning when the VSIX extension is installed.
  • Eclipse/CDT path variables of the form ${workspace_loc://include} are now internally aliased to ${project_loc}/include while expanding project include folder paths. This prevents issues expanding folder locations for projects which are physically located outside of the workspace.
  • The Analysis Status and Projects Display context menu "Troubleshooting | Save Preprocessed File As..." commands no longer erroneously include a reference to a PC-lint environment indirect file on the generated command line. This prevents PC-lint Plus from issuing an erroneous error 900 message at the end of the preprocessed file, which could cause an analysis error when the file is subsequently analysed.
  • Fixed a bug which could cause an out of date issue count to be displayed for a file while it was being analysed.
  • Added a "Browse" button to the "Location" combo box in the VisualLintGui "Find in Files" Dialog.
  • Updated the help to make it clear that VisualLintConsole and VisualLintGui can both analyse standalone projects as well as complete solutions/workspaces.
Download Visual Lint