Chapter 10. Advanced Topics
In this chapter, we’ll do a quick pass through some of the more advanced topics. We’re going to assume that you have a pretty good hold on Docker by now and that you’ve already got it in production or at least you’re a regular user. We’ll talk some more about deployment tools, networking, orchestration, security, and advanced configuration.
Some of this chapter covers configurable changes you can make to your Docker installation. These can be useful. But Docker has good defaults and the defaults are much better tested and usually more robust than the alternatives. Keep in mind that this is early production release software and things are moving fast. The defaults have the most eyeballs on them and therefore have had the largest number of bug fixes. You should stick to the defaults on your operating system unless you have a good reason to change them and have educated yourself on what those changes mean to you.
Docker has a very clean external interface and, in part because it’s largely a single static Go binary, it looks pretty monolithic. But there’s actually a lot going on under the covers that is configurable, and the two kinds of backends are a good example. With Docker, you can easily swap both how Docker interacts with the underlying filesystem and how it talks to the kernel about containers! Those are powerful switches and you’ll want to know what they do before throwing them. First we’ll talk about execution drivers, then ...