Updated to cover Docker version 1.10 Docker is quickly changing the way that organizations are deploying software at scale. But understanding how Linux containers fit into your workflow—and getting the integration details right—are not trivial tasks. With this practical guide, you’ll learn how to use Docker to package your applications with all of their dependencies, and then test, ship, scale, and support your containers in production. Two Lead Site Reliability Engineers at New Relic share much of what they have learned from using Docker in production since shortly after its initial release. Their goal is to help you reap the benefits of this technology while avoiding the many setbacks they experienced. Learn how Docker simplifies dependency management and deployment workflow for your applications Start working with Docker images, containers, and command line tools Use practical techniques to deploy and test Docker-based Linux containers in production Debug containers by understanding their composition and internal processes Deploy production containers at scale inside your data center or cloud environment Explore advanced Docker topics, including deployment tools, networking, orchestration, security, and configuration
Author: Sean P. Kane
Publisher: "O'Reilly Media, Inc."
Release Date: 2018-09-07
Docker is rapidly changing the way organizations deploy software at scale. However, understanding how Linux containers fit into your workflow—and getting the integration details right—is not a trivial task. With the updated edition of this practical guide, you’ll learn how to use Docker to package your applications with all of their dependencies and then test, ship, scale, and support your containers in production. This edition includes significant updates to the examples and explanations that reflect the substantial changes that have occurred over the past couple of years. Sean Kane and Karl Matthias have added a complete chapter on Docker Compose, deeper coverage of Docker Swarm mode, introductions to both Kubernetes and AWS Fargate, examples on how to optimize your Docker images, and much more. Learn how Docker simplifies dependency management and deployment workflow for your applications Start working with Docker images, containers, and command line tools Use practical techniques to deploy and test Docker containers in production Debug containers by understanding their composition and internal processes Deploy production containers at scale inside your data center or cloud environment Explore advanced Docker topics, including deployment tools, networking, orchestration, security, and configuration
Author: Karl Matthias
Publisher: O'Reilly Media
Release Date: 2015-06-25
Quickly learn how to use Docker and containers in general to create packaged images for easy management, testing, and deployment of software. This practical guide lets you hit the ground running by demonstrating how Docker allows developers to package their application with all of its dependencies and to test and then ship the exact same bundle to production. You’ll also learn how Docker enables operations engineers to help the development team quickly iterate on their software. Learn Docker’s philosophy, design, and intent Use your own custom software to build Docker images Launch Docker images as running containers Explore advanced Docker concepts and topics Get valuable references to related tools in the Docker ecosystem
Docker containers offer simpler, faster, and more robust methods for developing, distributing, and running software than previously available. With this hands-on guide, you’ll learn why containers are so important, what you’ll gain by adopting Docker, and how to make it part of your development process. Ideal for developers, operations engineers, and system administrators—especially those keen to embrace a DevOps approach—Using Docker will take you from Docker and container basics to running dozens of containers on a multi-host system with networking and scheduling. The core of the book walks you through the steps needed to develop, test, and deploy a web application with Docker. Get started with Docker by building and deploying a simple web application Use Continuous Deployment techniques to push your application to production multiple times a day Learn various options and techniques for logging and monitoring multiple containers Examine networking and service discovery: how do containers find each other and how do you connect them? Orchestrate and cluster containers to address load-balancing, scaling, failover, and scheduling Secure your system by following the principles of defense-in-depth and least privilege
Legend has it that Google deploys over two billion application containers a week. How’s that possible? Google revealed the secret through a project called Kubernetes, an open source cluster orchestrator (based on its internal Borg system) that radically simplifies the task of building, deploying, and maintaining scalable distributed systems in the cloud. This practical guide shows you how Kubernetes and container technology can help you achieve new levels of velocity, agility, reliability, and efficiency. Authors Kelsey Hightower, Brendan Burns, and Joe Beda—who’ve worked on Kubernetes at Google and other organizatons—explain how this system fits into the lifecycle of a distributed application. You will learn how to use tools and APIs to automate scalable distributed systems, whether it is for online services, machine-learning applications, or a cluster of Raspberry Pi computers. Explore the distributed system challenges that Kubernetes addresses Dive into containerized application development, using containers such as Docker Create and run containers on Kubernetes, using the docker image format and container runtime Explore specialized objects essential for running applications in production Reliably roll out new software versions without downtime or errors Get examples of how to develop and deploy real-world applications in Kubernetes
Whether you’re deploying applications on premise or in the cloud, this cookbook provides developers, operators, and IT professionals with more than 130 proven recipes for working with Docker. With these practical solutions, experienced developers with no previous knowledge of Docker will be able to package and deploy distributed applications within a couple of chapters. IT professionals will be able to solve everyday problems, as well as create, run, share, and deploy Docker images. Operators will quickly be able to adopt the tools that will change the way they work. The recipes in this book will help you: Manage containers, mount data volumes, and link containers Create and share container images Network containers across single or multiple hosts Tackle advanced topics such as Docker configuration and development Deploy multi-container applications on a distributed cluster with Kubernetes Use a new generation of operating systems optimized for Docker Learn tools for application deployment, continuous integration, service discovery, and orchestration Access a Docker host on Amazon AWS, Google GCE, and Microsoft Azure Monitor containers and explore different application use cases
Author: James Turnbull
Publisher: James Turnbull
Release Date: 2014-07-14
Updated for Docker Community Edition v18.03.1! Docker book designed for SysAdmins, Operations staff, Developers and DevOps who are interested in deploying the open source container service Docker. In this book, we'll walk you through installing, deploying, managing, and extending Docker. We're going to do that by first introducing you to the basics of Docker and its components. Then we'll start to use Docker to build containers and services to perform a variety of tasks. We're going to take you through the development life cycle, from testing to production, and see where Docker fits in and how it can make your life easier. We'll make use of Docker to build test environments for new projects, demonstrate how to integrate Docker with continuous integration workflow, and then how to build application services and platforms. Finally, we'll show you how to use Docker's API and how to extend Docker yourself. We'll teach you how to: * Install Docker. * Take your first steps with a Docker container. * Build Docker images. * Manage and share Docker images. * Run and manage more complex Docker containers. * Deploy Docker containers as part of your testing pipeline. * Build multi-container applications and environments. * Learn about orchestration using Compose and Swarm for the orchestration of Docker containers and Consul for service discovery. * Explore the Docker API. * Getting Help and Extending Docker.
Docker does for DevOps what Rails did for web development--it gives you a new set of superpowers. Gone are "works on my machine" woes and lengthy setup tasks, replaced instead by a simple, consistent, Docker-based development environment that will have your team up and running in seconds. Gain hands-on, real-world experience with a tool that's rapidly becoming fundamental to software development. Go from zero all the way to production as Docker transforms the massive leap of deploying your app in the cloud into a baby step. Docker makes life as a Ruby and Rails developer easier. It helps build, ship, and run your applications, solving major problems you face every day. It allows you to run applications at scale, adding new resources as needed. Docker provides a reliable, consistent environment that's guaranteed to work the same everywhere. Docker lets you do all things DevOps without needing a PhD in infrastructure and operations. Want to spin up a cluster to run your app? No problem. Scale it up or down at will? You bet. Start by running a Ruby script without having Ruby installed on the local machine. Then Dockerize a Rails application and run it using containers, including creating your own custom Docker images tailored for running Rails apps. Describe your app declaratively using Docker Compose, specifying the software dependencies along with everything needed to run the application. Then set up continuous integration, as well as your deployment pipeline and infrastructure. Along the way, find out the best practices for using Docker in development and production environments. This book gives you a solid foundation on using Docker and fitting it into your development workflow and deployment process. What You Need: All you need is a Windows, Mac OS X or Linux machine to do development on. This book guides you through the process of installing Docker. Some basic familiarity with Linux/Unix is recommended even if you're using a Windows machine.
Learn how to run new and old Windows applications in Docker containers. About This Book Package traditional .NET Frameworks apps and new .NET Core apps as Docker images, and run them in containers for increased efficiency, portability, and security Design and implement distributed applications that run across connected containers, using enterprise-grade open source software from public Docker images Build a full Continuous Deployment pipeline for a .NET Framework application, and deploy it to a highly-available Docker swarm running in the cloud Who This Book Is For If you want to modernize an old monolithic application without rewriting it, smooth the deployment to production, or move to DevOps or the cloud, then Docker is the enabler for you. This book gives you a solid grounding in Docker so you can confidently approach all of these scenarios. What You Will Learn Comprehend key Docker concepts: images, containers, registries, and swarms Run Docker on Windows 10, Windows Server 2016, and in the cloud Deploy and monitor distributed solutions across multiple Docker containers Run containers with high availability and fail-over with Docker Swarm Master security in-depth with the Docker platform, making your apps more secure Build a Continuous Deployment pipeline by running Jenkins in Docker Debug applications running in Docker containers using Visual Studio Plan the adoption of Docker in your own organization In Detail Docker is a platform for running server applications in lightweight units called containers. You can run Docker on Windows Server 2016 and Windows 10, and run your existing apps in containers to get significant improvements in efficiency, security, and portability. This book teaches you all you need to know about Docker on Windows, from 101 to deploying highly-available workloads in production. This book takes you on a Docker journey, starting with the key concepts and simple examples of how to run .NET Framework and .NET Core apps in Windows Docker containers. Then it moves on to more complex examples—using Docker to modernize the architecture and development of traditional ASP.NET and SQL Server apps. The examples show you how to break up monoliths into distributed apps and deploy them to a clustered environment in the cloud, using the exact same artifacts you use to run them locally. To help you move confidently to production, it then explains Docker security, and the management and support options. The book finishes with guidance on getting started with Docker in your own projects, together with some real-world case studies for Docker implementations, from small-scale on-premises apps to very large-scale apps running on Azure. Style and approach Using a step-by-step approach, this book shows you how to use Docker on Windows. It includes practical examples and real-world technical and business scenarios that will help you effectively implement Docker in your environment.There are over 50 examples of Dockerized applications, using C# .NET projects as the source and packaging them into Docker images.
Unleash the combination of Docker and Jenkins in order to enhance the DevOps workflow About This Book Build reliable and secure applications using Docker containers. Create a complete Continuous Delivery pipeline using Docker, Jenkins, and Ansible. Deliver your applications directly on the Docker Swarm cluster. Create more complex solutions using multi-containers and database migrations. Who This Book Is For This book is indented to provide a full overview of deep learning. From the beginner in deep learning and artificial intelligence to the data scientist who wants to become familiar with Theano and its supporting libraries, or have an extended understanding of deep neural nets. Some basic skills in Python programming and computer science will help, as well as skills in elementary algebra and calculus. What You Will Learn Get to grips with docker fundamentals and how to dockerize an application for the Continuous Delivery process Configure Jenkins and scale it using Docker-based agents Understand the principles and the technical aspects of a successful Continuous Delivery pipeline Create a complete Continuous Delivery process using modern tools: Docker, Jenkins, and Ansible Write acceptance tests using Cucumber and run them in the Docker ecosystem using Jenkins Create multi-container applications using Docker Compose Managing database changes inside the Continuous Delivery process and understand effective frameworks such as Cucumber and Flyweight Build clustering applications with Jenkins using Docker Swarm Publish a built Docker image to a Docker Registry and deploy cycles of Jenkins pipelines using community best practices In Detail The combination of Docker and Jenkins improves your Continuous Delivery pipeline using fewer resources. It also helps you scale up your builds, automate tasks and speed up Jenkins performance with the benefits of Docker containerization. This book will explain the advantages of combining Jenkins and Docker to improve the continuous integration and delivery process of app development. It will start with setting up a Docker server and configuring Jenkins on it. It will then provide steps to build applications on Docker files and integrate them with Jenkins using continuous delivery processes such as continuous integration, automated acceptance testing, and configuration management. Moving on you will learn how to ensure quick application deployment with Docker containers along with scaling Jenkins using Docker Swarm. Next, you will get to know how to deploy applications using Docker images and testing them with Jenkins. By the end of the book, you will be enhancing the DevOps workflow by integrating the functionalities of Docker and Jenkins. Style and approach The book is aimed at DevOps Engineers, developers and IT Operations who want to enhance the DevOps culture using Docker and Jenkins.
Docker lets you create, deploy, and manage your applications anywhere at anytime – flexibility is key so you can deploy stable, secure, and scalable app containers across a wide variety of platforms and delve into microservices architecture About This Book This up-to-date edition shows how to leverage Docker's features to deploy your existing applications Learn how to package your applications with Docker and build, ship, and scale your containers Explore real-world examples of securing and managing Docker containers Who This Book Is For This book is ideal for developers, operations managers, and IT professionals who would like to learn about Docker and use it to build and deploy container-based apps. No prior knowledge of Docker is expected. What You Will Learn Develop containerized applications using the Docker version 17.03 Build Docker images from containers and launch them Develop Docker images and containers leveraging Dockerfiles Use Docker volumes to share data Get to know how data is shared between containers Understand Docker Jenkins integration Gain the power of container orchestration Familiarize yourself with the frequently used commands such as docker exec, docker ps, docker top, and docker stats In Detail Docker is an open source containerization engine that offers a simple and faster way for developing and running software. Docker containers wrap software in a complete filesystem that contains everything it needs to run, enabling any application to be run anywhere – this flexibily and portabily means that you can run apps in the cloud, on virtual machines, or on dedicated servers. This book will give you a tour of the new features of Docker and help you get started with Docker by building and deploying a simple application. It will walk you through the commands required to manage Docker images and containers. You'll be shown how to download new images, run containers, list the containers running on the Docker host, and kill them. You'll learn how to leverage Docker's volumes feature to share data between the Docker host and its containers – this data management feature is also useful for persistent data. This book also covers how to orchestrate containers using Docker compose, debug containers, and secure containers using the AppArmor and SELinux security modules. Style and approach This step-by-step guide will walk you through the features and use of Docker, from Docker software installation to the impenetrable security of containers.
Author: Andy Hayes
Publisher: Createspace Independent Publishing Platform
Release Date: 2017-01-23
Docker - A Quick Start Beginners Guide Welcome to "Docker: A Quick Introduction To Using Docker Containers Today." This is the best guide for people who want to use Docker as well as implement container-based virtualization. You should not shy away from Docker containers because you lack the knowledge to implement them. All you have to do is completely engage this book. We have divided the book into chapters to make it easier for you to go through. The different topics covered are: Playing with Busybox Docker Run Terminology Webapps with Docker Static Sites Docker Images Our First Image Dockerfile Docker on AWS & much more Take Action Today and Learn Docker In No Time! Click the "Buy now with 1-Click" to the right and get this guide immediately.
Unlock new opportunities using Docker's most advanced features. About This Book Experience first- and third-party tools such as Docker Compose, Docker Machine, Portainer, and Rancher Learn how to leverage Kubernetes, Amazon ECS, and Docker Swarm and know when each solution is appropriate Discover how Docker can be integrated into your daily workflows Who This Book Is For If you are an I.T Professional and recognize Docker's importance for innovation in everything from system administration to web development, but aren't sure how to use it to its full potential, this book is for you. What You Will Learn Become fluent in the basic components and concepts of Docker Secure your containers and files with Docker's security features Extend Docker and solve architectural problems using first- and third-party orchestration tools, service discovery, and plugins Leverage the Linux container virtualization paradigm by creating highly scalable applications In Detail Docker has been a game-changer when it comes to how modern applications are deployed and architectured. It has now grown into a key driver of innovation beyond system administration, with an impact on the world of web development and more. But how can you make sure you're keeping up with the innovations it's driving This book shows you how; it not only demonstrates how to use Docker more effectively, it also helps you rethink and reimagine what's possible with Docker. You will also cover basic topics such as building, managing and storing images along with best practices to make you confident before delving more deeply into Docker security. You'll find everything related to extending and integrating Docker in new and innovative ways. Docker Swarm and Docker Compose will help you take control of your containers in an efficient way. By the end of the book, you will have a broad and detailed sense of exactly what's possible with Docker and how seamlessly it fits in with a range of other platforms and tools. Style and approach A clear, concise, and straightforward book to make you a Master in Docker by including topics such as extending and integrating Docker along with different Docker tools, in a way that's accessible and practical. This book has been created to help you put new ideas into practice, and to demonstrate precisely what's possible with Docker.
Get hands-on recipes to automate and manage Linux containers with the Docker 1.6 environment and jump-start your Puppet development About This Book Successfully deploy DevOps with proven solutions and recipes Automate your infrastructure with Puppet and combine powerful DevOps methods Deploy and manage highly scalable applications using Kubernetes streamline the way you manage your applications Who This Book Is For This Learning Path is for developers, system administrators, and DevOps engineers who want to use Puppet, Docker, and Kubernetes in their development, QA, or production environments. This Learning Path assumes experience with Linux administration and requires some experience with command-line usage and basic text file editing. What You Will Learn Discover how to build high availability Kubernetes clusters Deal with inherent issues with container virtualization and container concepts Create services with Docker to enable the swift development and deployment of applications Make optimum use of Docker in a testing environment Create efficient manifests to streamline your deployments Automate Puppet master deployment using Git hooks, r10k, and PuppetDB In Detail With so many IT management and DevOps tools on the market, both open source and commercial, it's difficult to know where to start. DevOps is incredibly powerful when implemented correctly, and here's how to get it done.This Learning Path covers three broad areas: Puppet, Docker, and Kubernetes. This Learning Path is a large resource of recipes to ease your daily DevOps tasks. We begin with recipes that help you develop a complete and expert understanding of Puppet's latest and most advanced features. Then we provide recipes that help you efficiently work with the Docker environment. Finally, we show you how to better manage containers in different scenarios in production using Kubernetes. This course is based on these books: Puppet Cookbook, Third Edition Docker Cookbook Kubernetes Cookbook Style and approach This easy-to-follow tutorial-style guide teaches you precisely how to configure complex systems in Puppet and manage your containers using Kubernetes.
Summary Docker in Action teaches readers how to create, deploy, and manage applications hosted in Docker containers. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology The idea behind Docker is simple. Create a tiny virtual environment, called a container, that holds just your application and its dependencies. The Docker engine uses the host operating system to build and account for these containers. They are easy to install, manage, and remove. Applications running inside containers share resources, making their footprints small. About the Book Docker in Action teaches readers how to create, deploy, and manage applications hosted in Docker containers. After starting with a clear explanation of the Docker model, you will learn how to package applications in containers, including techniques for testing and distributing applications. You will also learn how to run programs securely and how to manage shared resources. Using carefully designed examples, the book teaches you how to orchestrate containers and applications from installation to removal. Along the way, you'll discover techniques for using Docker on systems ranging from dev-and-test machines to full-scale cloud deployments. What's Inside Packaging containers for deployment Installing, managing, and removing containers Working with Docker images Distributing with DockerHub About the Reader Readers need only have a working knowledge of the Linux OS. No prior knowledge of Docker is assumed. About the Author Jeff Nickoloff, a software engineer, has presented Docker and its applications to hundreds of developers and administrators at Desert Code Camp, Amazon.com, and technology meetups. Table of Contents PART 1 KEEPING A TIDY COMPUTER Welcome to Docker Running software in containers Software installation simplified Persistent storage and shared state with volumes Network exposure Limiting risk with isolation PART 2 PACKAGING SOFTWARE FOR DISTRIBUTION Packaging software in images Build automation and advanced image considerations Public and private software distribution Running customized registries PART 3 MULTI-CONTAINER AND MULTI-HOST ENVIRONMENTS Declarative environments with Docker Clusters with Machine and Swarm