Mastering Docker Enterprise
A companion guide for agile container adoption
Mark Panthofer
- 488 pages
- English
- ePUB (mobile friendly)
- Available on iOS & Android
Mastering Docker Enterprise
A companion guide for agile container adoption
Mark Panthofer
About This Book
A journey toward containerized applications in production with a cloud-portable, secure, robust and highly available Docker Enterprise platform.
Key Features
- Get an insider's view into the container movement and Docker Enterprise
- Manage the transformation associated with enterprise container adoption
- Walk through the enterprise container adoption journey
Book Description
While known mostly as the open source engine behind tens of millions of server nodes, Docker also offers commercially supported enterprise tooling known as the Docker Enterprise. This platform leverages the deep roots from Docker Engine - Community (formerly Docker CE) and Kubernetes, but adds support and tooling to efficiently operate a secure container platform at scale. With hundreds of enterprises on board, best practices and adoption patterns are emerging rapidly. These learning points can be used to inform adopters and help manage the enterprise transformation associated with enterprise container adoption.
This book starts by explaining the case for Docker Enterprise, as well as its structure and reference architecture. From there, we progress through the PoC, pilot and production stages as a working model for adoption, evolving the platform's design and configuration for each stage and using detailed application examples along the way to clarify and demonstrate important concepts.The book concludes with Docker's impact on other emerging software technologies, such as Blockchain and Serverless computing.
By the end of this book, you'll have a better understanding of what it takes to get your enterprise up and running with Docker Enterprise and beyond.
What you will learn
- Understand why containers are important to an enterprise
- Understand the features and components of Docker Enterprise 2
- Find out about the PoC, pilot, and production adoption phases
- Get to know the best practices for installing and operating Docker Enterprise
- Understand what is important for a Docker Enterprise in production
- Run Kubernetes on Docker Enterprise
Who this book is for
This book is for Software Architects, DevOps Engineers, Tech Ops, Docker professionals, or any IT professional working with Docker and containers who wants to move containerized workloads to production. This book discusses the enterprise adoption of Docker and Kubernetes, therefore a basic understanding of Docker concepts will be helpful.
Frequently asked questions
Information
Section 1: Getting Started with Docker Enterprise
- Chapter 1, Making the Case for Docker Enterprise
- Chapter 2, Docker Enterprise – an Architectural Overview
- Chapter 3, Getting Started – Docker Enterprise Proof of Concept
Making the Case for Docker Enterprise
- What are Docker, Inc., Docker Engine-Community, and Docker Enterprise?
- Where did containers come from and why are they so popular?
- How do Kubernetes and Docker fit together?
- How do containers impact your business?
- Why would I choose Docker Enterprise?
Zero to everywhere in five years
The Docker story
- They have been evolving since 2000
- Linux Containers (LXC) was released in 2008
- Google's lmctfy (let me container that for you) supports Docker's libcontainer in 2015
- Standards emerged, including OCI, and CNCF, around 2015
- Center for internet security benchmark support
Containers change application development and deployment
- Illustrative scenario: Let's say I want to test out NGINX without installing anything (I already have Docker installed of course). I create a sample HTML page called index.html in my local directory and run the following:
docker run -p 8000:80 -v ${PWD}:/usr/share/nginx/html:ro -d nginx
- What is happening here?
- I'm telling Docker to run the official nginx image in the background on my local Docker Engine, forwarding my host adapter's port 8000 to the container's port 80 and mounting my local directory to share my HTML file with nginx as a read-only folder.
- Then, I point my local browser at http://localhost:8000 and I see my HTML page rendered. When I'm done, I ask Docker to remove the container. So, in the span of about a minute, I created a test web page, used NGINX to render it locally without installing anything locally, and ran it in complete isolation. The only possible collision with a host resource was around the host adapter's port 8000, which was arbitrary.
- This is cool, but don't VMs already do that for us?
- Conceptually there are some similarities, but container implementation is much more lightweight and efficient. The key implementation differences are:
- All containers share the host's kernel:
- Docker uses Linux container security futures to isolate containers from the host and other containers.
- Since the kernel is already running, startup time for containers is usually a second or two, versus waiting a minute or two for the guest OS to boot on a VM.
- Containers use a layered filesystem with caching:
- Docker images are composed of read-only layers that can be cached and shared across multiple containers.
- Major portions of Docker images can be shared across containers, meaning you don't have to pull the entire image every time. VMs on the other hand have a monolithic, opaque filesystem that's completely reloaded every time it's started. This leads to slow load times and inefficient image storage with VMs.
- All containers share the host's kernel:
- Conceptually there are some similarities, but container implementation is much more lightweight and efficient. The key implementation differences are:
Containers gain popularity
- Faster developer onboarding: Container-based development
- Easy to run and test on dev machines: Great for simulating production
- Faster release cycles and shorter time to fix bugs: No more monolithic deployments
- Better quality software: Consistent images across all environments
- It is too hard to manage microservices without them: Stacks are great for isolation and deployment
- Easier to support legacy web applications: Containerize old apps and manage them on a modern platform
- Reduction of VMware tax: Better use of compute resources through increased density and consolidation of multiple non-prod environments (using Docker Enterprise RBAC)
I am closing this section on a practical note by suggesting your initial operational savings will be offset by the investment required to transform your enterprise to a container platform. When done right, the impact of container adoption impacts a broad group within the enterprise, spanning the entire software development and delivery pipeline. Like any transformation worth doing, there is some investment required. More about the impact of container adoption later.
Docker Engine-Community – free Docker
- Docker Engine-Community for x86 64-bit desktop architectures for Mac and Windows 10 Pro+
- Server CE for targeting CentOS, Debian, Fedora, and Ubuntu Linux distributions