Docker Containers (includes Content Update Program): Build and Deploy with Kubernetes, Flannel, Cockpit, and Atomic

Docker Containers (includes Content Update Program): Build and Deploy with Kubernetes, Flannel, Cockpit, and Atomic

By: Christopher Negus (author)Paperback

Special OrderSpecial Order item not currently available. We'll try and order for you.


The Practical Guide to Running Docker on Linux Systems or Cloud Environments Whether on your laptop or a remote cloud, Docker can transform how you create, test, deploy, and manage your most critical applications. In Docker Containers, Christopher Negus helps you master Docker containerization from the ground up. You'll start out running a few Docker container images in Ubuntu, Fedora, RHEL, CoreOS, or Project Atomic. By the time you've finished, you'll be deploying enterprise-quality, multi-container Kubernetes setups in modern Linux and cloud environments. Writing for system administrators, software developers, and technology enthusiasts, Negus touches on every aspect of working with Docker: setting up containerized applications, working with both individual and multiple containers, running containers in cloud environments, and developing containers. Teaching through realistic examples of desktop applications, system services, and games, Negus guides you through building and deploying your own Dockerized applications. As you build your expertise, you'll also learn indispensable Docker best practices for building and integrating containers, managing Docker on a day-to-day basis, and much more: * Understanding what Docker is and what you can do with it * Installing Docker on standard Linux or specialized container operating systems such as Atomic Host and CoreOS * Setting up a container runtime environment and private Docker Registry * Creating, running, and investigating Docker images and containers * Finding, pulling, saving, loading, and tagging container images * Pulling and pushing containers between local systems and Docker Registries * Integrating Docker containers with host networking and storage * Building containers with the docker build command and Dockerfile files * Minimizing space consumption and erasing unneeded containers * Accessing special host privileges from within a container * Orchestrating multiple containers into complex applications with Kubernetes * Using super privileged containers in cloud environments * Managing containers in the cloud with Cockpit * Getting started with Docker container development * Learning container build techniques from shared Dockerfiles This book is part of the Pearson Content Update Program. As the technology changes, sections of this book will be updated or new sections will be added. The updates will be delivered to you via a free Web Edition of this book, which can be accessed with any Internet connection.

About Author

Christopher Negus is a bestselling author of Linux books, a certified Linux instructor and examiner, Red Hat Certified Architect, and principal technical writer for Red Hat. At the moment, projects Chris is working on include Red Hat OpenStack Platform High Availability, Red Hat Enterprise Linux Atomic Enterprise, Kubernetes, and Linux Containers in Docker format. As an author, Chris has written dozens of books about Linux and open source software. His Linux Bible, Ninth Edition, released in 2015, is consistently among the top-selling Linux books today. During the dotcom days, Chris's Red Hat Linux Bible sold more than 250,000 copies in eight editions and was twice voted best Linux book of the year. Other books authored or coauthored by Chris include the Linux Toolbox series, Linux Toys series, Fedora and Red Hat Enterprise Linux Bible series, and Linux Troubleshooting Bible with Wiley Publishing. With Prentice Hall, Chris helped produce the Negus Software Solution Series. For that series, Chris wrote Live Linux CDs and coauthored The Official Damn Small Linux Book. That series also includes books on web development, Google Apps, and virtualization. Chris joined Red Hat in 2008 as an RHCE instructor. For that role, he became a Red Hat Certified Instructor (RHCI) and Red Hat Certified Examiner (RHCX). In 2014, Chris became a Red Hat Certified Architect (RHCA), with certifications in Virtualization Administration, Deployment and Systems Management, Cluster and Storage Management, and Server Hardening. In 2011, Chris shifted from his Linux instructor role back to being a full-time writer for Red Hat, which he continues to do today. Early in his career, Chris worked at UNIX System Laboratories and AT&T Bell Labs with the organizations that produced the UNIX operating system. During that time, Chris wrote the first official UNIX System V Desktop system manual and cowrote the Guide to the UNIX Desktop. For eight years, Chris worked closely with developers of the UNIX system, from UNIX System V Release 2.0 through Release 4.2.


Preface xv Acknowledgments xxi About the Author xxiii Part I: Getting Going with Containers 1 Chapter 1: Containerizing Applications with Docker 3 Understanding Pros and Cons of Containerizing Applications 4 ...An Application Running Directly on a Host Computer 4 ...An Application Running Directly within a Virtual Machine 5 Understanding the Upside of Containers 5 Understanding Challenges of Containerizing Applications 7 Understanding What Makes Up Docker 8 The Docker Project 8 The Docker Hub Registry 9 Docker Images and Containers 10 The docker Command 11 Approaching Containers 13 Summary 14 Chapter 2: Setting Up a Container Run-Time Environment 17 Configuring a Standard Linux System for Docker 18 Configuring Ubuntu for Docker 18 Configuring Fedora for Docker 21 Configuring Red Hat Enterprise Linux for Docker 25 Configuring Other Operating Systems for Docker 27 Configuring a Container-Style Linux System for Docker 29 Configuring an Atomic Host for Docker 29 Configuring CoreOS for Docker 32 Summary 34 Chapter 3: Setting Up a Private Docker Registry 35 Getting and Starting a Private Docker Registry 36 Setting Up a Docker Registry in Fedora 37 Setting Up a Docker Registry in Ubuntu 40 Configuring a Private Docker Registry 43 Configuring the docker-registry Package 43 Configuring the registry Container 46 Understanding the Docker Image Namespace 46 Summary 48 Part II: Working with Individual Containers 49 Chapter 4: Running Container Images 51 Running Container Images Interactively 54 Starting an Interactive Bash Shell 54 Playing Some Character-Based Games 56 Running Administrative Commands Inside a Container 57 Running Containerized Services 59 Running a Containerized Web Server 59 Limiting Resources When Running Services in Containers 62 Running Privileged Containers 63 Summary 64 Chapter 5: Finding, Pulling, Saving, and Loading Container Images 65 Searching for Images 66 Searching for Images with the docker Command 66 Searching for Images on Docker Hub 69 Searching Other Repositories for Images 70 Pulling Images from Registries 73 Saving and Loading Images 76 Summary 77 Chapter 6: Tagging Images 79 Assigning Names to Images 80 Assigning Tags to Images 81 Assigning Repository Names to Images 83 Attaching a User Name to an Image 83 Attaching a Repository Name to an Image 85 Summary 86 Chapter 7: Investigating Containers 87 Inspecting Images and Containers 88 Inspecting an Image 88 Inspecting Base Images with docker inspect 89 Inspecting Application Images with docker inspect 90 Looking at the History of an Image 92 Inspecting Running Containers 92 Start a Container to Inspect 93 Inspect an Entire Container Configuration 94 Inspect Individual Container Attributes 99 Finding More Ways to Look into Containers 103 Using docker top to See Container Processes 103 Using docker attach to Interact with a Service Inside a Container 104 Using docker exec to Start a New Process in a Running Container 105 Using docker logs to See Container Process Output 106 Using docker diff to See How a Container Has Changed 106 Using docker cp to Copy Files from a Container 107 Summary 107 Chapter 8: Starting, Stopping, and Restarting Containers 109 Stopping and Starting a Container 109 Stopping and Starting a Detached Container 110 Starting and Stopping an Interactive Container 112 Restarting a Container 113 Sending Signals to a Container 114 Pausing and Unpausing Containers 115 Waiting for a Container's Exit Code 116 Renaming a Container 117 Creating a Container 117 Summary 118 Chapter 9: Configuring Container Storage 121 Managing Storage for a Container 122 Using Volumes from the Host 122 Data Volume Container 123 Write-Protecting a Bind Mount 124 Mounting Devices 125 Mounting Sockets 125 Storage Strategies for the Docker Host 127 Attaching External Storage to a Docker Host 128 Summary 130 Chapter 10: Configuring Container Networking 133 Expose Ports to Other Containers 134 Map Ports Outside the Host 136 Map a Port from Linked Containers 136 Connect Containers on Different Hosts 138 Alternatives to the docker0 Bridge 139 Changing Network Mode for a Container 140 Examining Network Options 140 Changing the Docker Network Bridge 142 Summary 143 Chapter 11: Cleaning Up Containers 145 Making Space for Images and Containers 146 Removing Images 146 Removing Individual Images 147 Removing Multiple Images 148 Removing Containers 150 Removing Individual Containers 150 Removing Multiple Containers 152 Cleaning Up and Saving Containers 153 Cleaning Up and Saving an Ubuntu Container 153 Cleaning Up and Saving a Fedora Container 154 Summary 154 Chapter 12: Building Docker Images 157 Doing a Simple docker build 158 Setting a Command to Execute from a Dockerfile 161 Using the CMD Instruction 161 Using the ENTRYPOINT Instruction 162 Using the RUN Instruction 163 Adding Files to an Image from a Dockerfile 164 Exposing Ports from an Image within a Dockerfile 165 Assigning Environment Variables in a Dockerfile 166 Assigning Labels in a Dockerfile 167 Using Other docker build Command Options 168 Tips for Building Containers 169 Clean Up the Image 169 Keep Build Directory Small 169 Keep Containers Simple 170 Manage How Caching Is Done 170 Summary 171 Part III: Running Containers in Cloud Environments 173 Chapter 13: Using Super Privileged Containers 175 Using Super Privileged Containers in Atomic Host 176 Understanding Super Privileged Containers 176 Opening Privileges to the Host 177 Accessing the Host Process Table 177 Accessing Host Network Interfaces 178 Accessing Host Inter-Process Communications 179 Accessing Host File Systems 179 Preparing to Use Super Privileged Containers 180 Using the atomic Command 180 Installing an SPC Image with atomic 182 Getting Information about an SPC Image with atomic 182 Running an SPC Image with atomic 183 Stopping and Restarting an SPC with atomic 184 Updating an SPC Image 184 Uninstalling an SPC Image 185 Trying Some SPCs 185 Running the RHEL Tools SPC 186 Running the Logging (rsyslog) SPC 187 Running the System Monitor (sadc) SPC 189 Summary 191 Chapter 14: Managing Containers in the Cloud with Cockpit 193 Understanding Cockpit 194 Starting with Cockpit 198 Adding Servers into Cockpit 199 Working with Containers from Cockpit 201 Adding Container Images to Cockpit 201 Running Images from Cockpit 201 Working with Network Interfaces from Cockpit 204 Configuring Storage from Cockpit 207 Doing Other Administrative Tasks in Cockpit 208 Managing Administrator Accounts in Cockpit 208 Open a Terminal in Cockpit 209 Summary 210 Part IV: Managing Multiple Containers 211 Chapter 15: Orchestrating Containers with Kubernetes 213 Understanding Kubernetes 214 Starting with Kubernetes 216 Setting Up an All-in-One Kubernetes Configuration 218 Installing and Starting Up Kubernetes 218 Starting Up a Pod in Kubernetes 220 Working with Kubernetes 223 Summary 224 Chapter 16: Creating a Kubernetes Cluster 225 Understanding Advanced Kubernetes Features 226 Setting Up a Kubernetes Cluster 226 Step 1: Install Linux 227 Step 2: Set Up Kubernetes Master 227 Step 3: Set Up Kubernetes Nodes 230 Step 4: Set Up Networking with Flannel 231 Starting Up Pods in a Kubernetes Cluster 233 Deleting Replication Controllers, Services, and Pods 237 Summary 238 Part V: Developing Containers 239 Chapter 17: Developing Docker Containers 241 Setting Up for Container Development 241 Choosing a Container Development Environment for Red Hat Systems 242 Container Development Environments from Docker 246 Using Good Development Practices 247 Gathering or Excluding Files for a Build 248 Taking Advantage of Layers 249 Managing Software Packages in a Build 250 Learning More about Building Containers 251 Summary 252 Chapter 18: Exploring Sample Dockerfile Files 253 Examining Dockerfiles for Official Docker Images 254 Viewing a CentOS Dockerfile 254 Viewing a Busybox Dockerfile 257 Examining Dockerfiles from Open Source Projects 258 Viewing a WordPress Dockerfile 258 Viewing the MySQL Dockerfile 260 Examining Dockerfiles for Desktop and Personal Use 263 Viewing a Chrome Dockerfile 263 Viewing a Firefox Dockerfile 267 Summary 270 Index 273

Product Details

  • ISBN13: 9780134136561
  • Format: Paperback
  • Number Of Pages: 320
  • ID: 9780134136561
  • weight: 522
  • ISBN10: 013413656X

Delivery Information

  • Saver Delivery: Yes
  • 1st Class Delivery: Yes
  • Courier Delivery: Yes
  • Store Delivery: Yes

Prices are for internet purchases only. Prices and availability in WHSmith Stores may vary significantly