Deployment with Docker


Book Description

A practical guide to rapidly and efficiently mastering Docker containers, along with tips and tricks learned in the field. About This Book Use Docker containers, horizontal node scaling, modern orchestration tools (Docker Swarm, Kubernetes, and Mesos) and Continuous Integration/Continuous Delivery to manage your infrastructure. Increase service density by turning often-idle machines into hosts for numerous Docker services. Learn what it takes to build a true container infrastructure that is scalable, reliable, and resilient in the face of increased complexities from using container infrastructures. Find out how to identify, debug, and mitigate most real-world, undocumented issues when deploying your own Docker infrastructure. Learn tips and tricks of the trade from existing Docker infrastructures running in production environments. Who This Book Is For This book is aimed at system administrators, developers, DevOps engineers, and software engineers who want to get concrete, hands-on experience deploying multi-tier web applications and containerized microservices using Docker. This book is also for anyone who has worked on deploying services in some fashion and wants to take their small-scale setups to the next level (or simply to learn more about the process). What You Will Learn Set up a working development environment and create a simple web service to demonstrate the basics Learn how to make your service more usable by adding a database and an app server to process logic Add resilience to your services by learning how to horizontally scale with a few containers on a single node Master layering isolation and messaging to simplify and harden the connectivity between containers Learn about numerous issues encountered at scale and their workarounds, from the kernel up to code versioning Automate the most important parts of your infrastructure with continuous integration In Detail Deploying Docker into production is considered to be one of the major pain points in developing large-scale infrastructures, and the documentation available online leaves a lot to be desired. With this book, you will learn everything you wanted to know to effectively scale your deployments globally and build a resilient, scalable, and containerized cloud platform for your own use. The book starts by introducing you to the containerization ecosystem with some concrete and easy-to-digest examples; after that, you will delve into examples of launching multiple instances of the same container. From there, you will cover orchestration, multi-node setups, volumes, and almost every relevant component of this new approach to deploying services. Using intertwined approaches, the book will cover battle-tested tooling, or issues likely to be encountered in real-world scenarios, in detail. You will also learn about the other supporting components required for a true PaaS deployment and discover common options to tie the whole infrastructure together. At the end of the book, you learn to build a small, but functional, PaaS (to appreciate the power of the containerized service approach) and continue to explore real-world approaches to implementing even larger global-scale services. Style and approach This in-depth learning guide shows you how to deploy your applications in production using Docker (from the basic steps to advanced concepts) and how to overcome challenges in Docker-based infrastructures. The book also covers practical use-cases in real-world examples, and provides tips and tricks on the various topics.




Using Docker


Book Description

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




Docker: Up and Running


Book Description

A hands-on guide that will help you compose, package, deploy, and manage applications with ease KEY FEATURES ● Get familiar and work with key components of Docker. ● Learn how to automate CI/CD pipeline using Docker and Jenkins. ● Uncover the top Docker interview questions to crack your next interview. DESCRIPTION Containers are one of the disruptive technologies in IT that have fundamentally changed how software is build, shipped, and run today. If you want to pursue a career as a Software engineer or a DevOps professional, then this book is for you. The book starts by introducing Docker and teaches you how to write and run commands in Docker. The book then explains how to create Docker files, images, and containers, and while doing so, you get a stronghold of Docker tools like Docker Images, Dockerfiles, and Docker Compose. The book will also help you learn how to work with existing container images and how to build, test, and ship your containers containing your applications. Furthermore, the book will help you to deploy and run your containerized applications on Kubernetes and in the cloud. By the end of the book, you will be able to build and deploy enterprise applications with ease. WHAT YOU WILL LEARN ● Learn how to test and debug containerized applications. ● Understand how container orchestration works in Kubernetes. ● Monitor your Docker container's log using Prometheus and Grafana. ● Deploy, update, and scale applications into a Kubernetes cluster using different strategies. ● Learn how to use Snyk to scan vulnerabilities in Docker. WHO THIS BOOK IS FOR This book is for System administrators, Software engineers, DevOps aspirants, Application engineers, and Application developers. TABLE OF CONTENTS 1. Explaining Containers and their Benefits 2. Setting Up Your Environment 3. Getting Familiar with Containers 4. Using Existing Docker Images 5. Creating Your Own Docker Image 6. Demystifying Container Networking 7. Managing Complex Apps with Docker Compose 8. Testing and Debugging Containerized Applications 9. Establishing an Automated Build Pipeline 10. Orchestrating Containers 11. Leveraging Docker Logs to Provide Insight into Your Apps 12. Enabling Zero Downtime Deployments 13. Securing Containers




Docker for Developers


Book Description

Learn how to deploy and test Linux-based Docker containers with the help of real-world use cases Key FeaturesUnderstand how to make a deployment workflow run smoothly with Docker containersLearn Docker and DevOps concepts such as continuous integration and continuous deployment (CI/CD)Gain insights into using various Docker tools and librariesBook Description Docker is the de facto standard for containerizing apps, and with an increasing number of software projects migrating to containers, it is crucial for engineers and DevOps teams to understand how to build, deploy, and secure Docker environments effectively. Docker for Developers will help you understand Docker containers from scratch while taking you through best practices and showing you how to address security concerns. Starting with an introduction to Docker, you'll learn how to use containers and VirtualBox for development. You'll explore how containers work and develop projects within them after you've explored different ways to deploy and run containers. The book will also show you how to use Docker containers in production in both single-host set-ups and in clusters and deploy them using Jenkins, Kubernetes, and Spinnaker. As you advance, you'll get to grips with monitoring, securing, and scaling Docker using tools such as Prometheus and Grafana. Later, you'll be able to deploy Docker containers to a variety of environments, including the cloud-native Amazon Elastic Kubernetes Service (Amazon EKS), before finally delving into Docker security concepts and best practices. By the end of the Docker book, you'll be able to not only work in a container-driven environment confidently but also use Docker for both new and existing projects. What you will learnGet up to speed with creating containers and understand how they workPackage and deploy your containers to a variety of platformsWork with containers in the cloud and on the Kubernetes platformDeploy and then monitor the health and logs of running containersExplore best practices for working with containers from a security perspectiveBecome familiar with scanning containers and using third-party security tools and librariesWho this book is for If you're a software engineer new to containerization or a DevOps engineer responsible for deploying Docker containers in the cloud and building DevOps pipelines for container-based projects, you'll find this book useful. This Docker containers book is also a handy reference guide for anyone working with a Docker-based DevOps ecosystem or interested in understanding the security implications and best practices for working in container-driven environments.




Using Docker


Book Description

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




Beginning DevOps with Docker


Book Description

Making sure that your application runs across different systems as intended is quickly becoming a standard development requirement. With Docker, you can ensure that what you build will behave the way you expect it to, regardless of where it's deployed. By guiding you through Docker from start to finish (from installation, to the Docker ...




The Docker Book


Book Description

Updated for Docker Community Edition v18.09! Docker book designed for SysAdmins, SREs, 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 lifecycle, 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.




Learn Docker in a Month of Lunches


Book Description

Summary Go from zero to production readiness with Docker in 22 bite-sized lessons! Learn Docker in a Month of Lunches is an accessible task-focused guide to Docker on Linux, Windows, or Mac systems. In it, you’ll learn practical Docker skills to help you tackle the challenges of modern IT, from cloud migration and microservices to handling legacy systems. There’s no excessive theory or niche-use cases—just a quick-and-easy guide to the essentials of Docker you’ll use every day. 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: package applica­tions in lightweight virtual containers that can be easily installed. The results of this simple idea are huge! Docker makes it possible to manage applications without creating custom infrastructures. Free, open source, and battle-tested, Docker has quickly become must-know technology for developers and administrators. About the book Learn Docker in a Month of Lunches introduces Docker concepts through a series of brief hands-on lessons. Follow­ing a learning path perfected by author Elton Stoneman, you’ll run containers by chapter 2 and package applications by chapter 3. Each lesson teaches a practical skill you can practice on Windows, macOS, and Linux systems. By the end of the month you’ll know how to containerize and run any kind of application with Docker. What's inside Package applications to run in containers Put containers into production Build optimized Docker images Run containerized apps at scale About the reader For IT professionals. No previous Docker experience required. About the author Elton Stoneman is a consultant, a former architect at Docker, a Microsoft MVP, and a Pluralsight author. Table of Contents PART 1 - UNDERSTANDING DOCKER CONTAINERS AND IMAGES 1. Before you begin 2. Understanding Docker and running Hello World 3. Building your own Docker images 4. Packaging applications from source code into Docker Images 5. Sharing images with Docker Hub and other registries 6. Using Docker volumes for persistent storage PART 2 - RUNNING DISTRIBUTED APPLICATIONS IN CONTAINERS 7. Running multi-container apps with Docker Compose 8. Supporting reliability with health checks and dependency checks 9. Adding observability with containerized monitoring 10. Running multiple environments with Docker Compose 11. Building and testing applications with Docker and Docker Compose PART 3 - RUNNING AT SCALE WITH A CONTAINER ORCHESTRATOR 12. Understanding orchestration: Docker Swarm and Kubernetes 13. Deploying distributed applications as stacks in Docker Swarm 14. Automating releases with upgrades and rollbacks 15. Configuring Docker for secure remote access and CI/CD 16. Building Docker images that run anywhere: Linux, Windows, Intel, and Arm PART 4 - GETTING YOUR CONTAINERS READY FOR PRODUCTION 17. Optimizing your Docker images for size, speed, and security 18. Application configuration management in containers 19. Writing and managing application logs with Docker 20. Controlling HTTP traffic to containers with a reverse proxy 21. Asynchronous communication with a message queue 22. Never the end




Docker: Up & Running


Book Description

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




Deploying Rails with Docker, Kubernetes and ECS


Book Description

Learn how to use the power of Docker and Kubernetes to deploy your Rails applications easily and efficiently. Deploying Rails with Docker, Kubernetes and ECS shows you how to set up the project, push it to DockerHub, manage services and set up an efficient continuous integration environment. Every concept is clearly explained alongside a full Ruby on Rails application deployment. You’ll also learn how to deploy via Docker using Amazon EC2 Container Service. Docker and Kubernetes are increasing in popularity every day, but what if you want to leverage their benefits for your Rails application? This is the quick guide you need. What You Will Learn Create a Rails API application using Rails 5 and PostgreSQL, and Dockerize it Write and test templates to run the application with Kubernetes Create a Kubernetes cluster in Amazon Web Services and run your Inspect and troubleshoot problems in the cluster Automatize the the whole deployment process with Jenkins Who This Book Is For This book is for anyone who wants to understand how to effectively deploy a Rails application using Docker and Kubernetes. You will need to understand Rails and have basic knowledge of what Docker and Kubernetes are used for.