Docker in Action teaches readers how to create, deploy, and manage applications hosted in Docker containers.
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 more » 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.
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 ***
1. Welcome to Docker
2. Running software in containers
3. Software installation simplified
4. Persistent storage and shared state with volumes
5. Network exposure
6. Limiting risk with isolation
7. PART 2 PACKAGING SOFTWARE FOR DISTRIBUTION
8. Packaging software in images
9. Build automation and advanced image considerations
10. Public and private software distribution
11. Running customized registries
12. PART 3 MULTI-CONTAINER AND MULTI-HOST ENVIRONMENTS
13. Declarative environments with Docker
14. Clusters with Machine and Swarm « less
*** Key Features ***
* Get the first book on the market that shows you how to extend the capabilities of Docker using plugins and third-party tools
* Master the skills of creating various plugins and integrating great tools in order to enhance the functionalities of Docker
* A practical and learning more » guide that ensures your investment in Docker becomes more valuable
*** Book Description ***
With Docker, it is possible to get a lot of apps running on the same old servers, making it very easy to package and ship programs. The ability to extend Docker using plugins and load third-party plugins is incredible, and organizations can massively benefit from it.
In this book, you will read about what first and third party tools are available to extend the functionality of your existing Docker installation and how to approach your next Docker infrastructure deployment. We will show you how to work with Docker plugins, install it, and cover its lifecycle. We also cover network and volume plugins, and you will find out how to build your own plugin.
You'll discover how to integrate it with Puppet, Ansible, Jenkins, Flocker, Rancher, Packer, and more with third-party plugins. Then, you'll see how to use Schedulers such as Kubernetes and Amazon ECS. Finally, we'll delve into security, troubleshooting, and best practices when extending Docker.
By the end of this book, you will learn how to extend Docker and customize it based on your business requirements with the help of various tools and plugins.
*** What you will learn ***
* Find out about Docker plugins and the problems they solve
* Gain insights into creating your own plugin
* Use Docker tools to extend the basic functionality of the core Docker engine
* Get to grips with the installation and configuration of third-party tools available to use with Docker plugins
* Install, configure, and use a scheduling service to manage the containers in your environment
* Enhance your day-to-day Docker usage through security, troubleshooting, and best practices
*** About the Author ***
Russ McKendrick is an experienced solution architect who has been working in IT and related industries for the better part of 23 years. During his career, he has had varied responsibilities in a number of industries, ranging from looking after an entire IT infrastructure to providing first-line, second-line, and senior support in client-facing and internal teams for corporate organizations.
Russ works almost exclusively with Linux, using open source systems and tools across dedicated hardware, virtual machines to public and private clouds at Node4 Limited, where he heads up the Open Source solutions team.
*** Table of Contents ***
1. Introduction to Extending Docker
2. Introducing First-party Tools
3. Volume Plugins
4. Network Plugins
5. Building Your Own Plugin
6. Extending Your Infrastructure
7. Looking at Schedulers
8. Security, Challenges, and Conclusions « less
Go Web Programming teaches you how to build scalable, high-performance web applications in Go using modern design principles.
About the Technology
The Go language handles the demands of scalable, high-performance web applications by providing clean and fast compiled code, garbage collection, more » a simple concurrency model, and a fantastic standard library. It's perfect for writing microservices or building scalable, maintainable systems.
About the Book
Go Web Programming teaches you how to build web applications in Go using modern design principles. You'll learn how to implement the dependency injection design pattern for writing test doubles, use concurrency in web applications, and create and consume JSON and XML in web services. Along the way, you'll discover how to minimize your dependence on external frameworks, and you'll pick up valuable productivity techniques for testing and deploying your applications.
* Testing and benchmarking
* Using concurrency
* Deploying to standalone servers, PaaS, and Docker
* Dozens of tips, tricks, and techniques
About the Reader
This book assumes you're familiar with Go language basics and the general concepts of web development.
About the Author
Sau Sheong Chang is Managing Director of Digital Technology at Singapore Power and an active contributor to the Ruby and Go communities.
Table of Contents
1. PART 1 GO AND WEB APPLICATIONS
2. Go and web applications
3. Go ChitChat
4. PART 2 BASIC WEB APPLICATIONS
5. Handling requests
6. Processing requests
7. Displaying content
8. Storing data
9. PART 3 BEING REAL
10. Go web services
11. Testing your application
12. Leveraging Go concurrency
13. Deploying Go « less
This book on Kubernetes, the container cluster manager, discusses all aspects of using Kubernetes in today's complex big data and enterprise applications, including Docker containers.
Starting with installing Kubernetes on a single node, the book introduces Kubernetes with a simple Hello example more » and discusses using environment variables in Kubernetes.
Next, the book discusses using Kubernetes with all major groups of technologies such as relational databases, NoSQL databases, and in the Apache Hadoop ecosystem.
The book concludes with using multi container Pods and installing Kubernetes on a multi node cluster. No other book on using Kubernetes - beyond simple introduction - is available in the market.
What You Will Learn
* How to install Kubernetes on a single node
* How to install Kubernetes on a multi-node cluster
* How to set environment variables
* How to create a multi-container pods using Docker
* How to use volumes
* How to use Kubernetes with Apache Hadoop Ecosystem
* How to use Kubernetes with NoSQL Databases
* How to use Kubernetes with RDBMS
Who This Book Is For
Application Developers including Apache Hadoop Developers, Database developers and NoSQL Developers. « less
The Most Complete, Practical, and Actionable Guide to Microservices
Going beyond mere theory and marketing hype, Eberhard Wolff presents all the knowledge you need to capture the full benefits of this emerging paradigm. He illuminates microservice concepts, architectures, and scenarios from a technology-neutral more » standpoint, and demonstrates how to implement them with today’s leading technologies such as Docker, Java, Spring Boot, the Netflix stack, and Spring Cloud.
The author fully explains the benefits and tradeoffs associated with microservices, and guides you through the entire project lifecycle: development, testing, deployment, operations, and more. You’ll find best practices for architecting microservice-based systems, individual microservices, and nanoservices, each illuminated with pragmatic examples. The author supplements opinions based on his experience with concise essays from other experts, enriching your understanding and illuminating areas where experts disagree. Readers are challenged to experiment on their own the concepts explained in the book to gain hands-on experience.
* Discover what microservices are, and how they differ from other forms of modularization
* Modernize legacy applications and efficiently build new systems
* Drive more value from continuous delivery with microservices
* Learn how microservices differ from SOA
* Optimize the microservices project lifecycle
* Plan, visualize, manage, and evolve architecture
* Integrate and communicate among microservices
* Apply advanced architectural techniques, including CQRS and Event Sourcing
* Maximize resilience and stability
* Operate and monitor microservices in production
* Build a full implementation with Docker, Java, Spring Boot, the Netflix stack, and Spring Cloud
* Explore nanoservices with Amazon Lambda, OSGi, Java EE, Vert.x, Erlang, and Seneca
* Understand microservices’ impact on teams, technical leaders, product owners, and stakeholders
Managers will discover better ways to support microservices, and learn how adopting the method affects the entire organization. Developers will master the technical skills and concepts they need to be effective. Architects will gain a deep understanding of key issues in creating or migrating toward microservices, and exactly what it will take to transform their plans into reality. « less
Developing and Deploying Software with Containers
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 more » 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 « less
Create, modify, and run your own PaaS with modularized containers using Docker
Docker is a great tool in many ways for developers and people in DevOps.
We begin by learning how easy it is to create and publish your own customized Docker images and making them available to everyone. We also see how practical it is to separate every service to its own container. When you have more » published separated service containers, the process of running all kinds of platforms in the same server is a walk in the park.
This book walks you through a use case project that will teach you how to customize and create your own Docker image, allowing you to run any platform you want. The project evolves throughout the book and emerges as a complete three containers Wordpress/MySQL platform when finished.
By the end of the book, you will know how to create such a container on a Wordpress/MySQL platform, among others. « less
Up & Running
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 more » 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 « less
Optimize the power of Docker to run your applications quickly and easily
***** About This Book *****
* Learn to compose, use, and publish the Docker containers
* Leverage the features of Docker to deploy your existing applications
* Explore real world examples of securing and managing Docker containers
***** Who This Book Is For *****
If you are an application more » developer who wants to learn Docker in order to utilize its features for application deployment, then this book is for you. No prior knowledge of Docker is required.
***** What You Will Learn *****
* Build a Docker image using Dockerfiles
* Push and publish images on Docker Hub
* Run your own private Docker Hub and upload images onto it
* Create and run services inside a container to deploy your applications with ease
* Share data between the Docker host and containers
* Orchestrate multiple containers with Docker Compose
* Test and debug applications inside a Docker container
* Secure your Docker containers with SELinux
***** In Detail *****
Docker is a next-generation platform for simplifying application containerization life-cycle. Docker allows you to create a robust and resilient environment in which you can generate portable, composable, scalable, and stable application containers.
This book is a step-by-step guide that will walk you through the various features of Docker from Docker software installation to the impenetrable security of containers. The book starts off by elucidating the installation procedure for Docker and a few troubleshooting techniques. You will be introduced to the process of downloading Docker images and running them as containers. You'll learn how to run containers as a service (CaaS) and also discover how to share data among containers. Later on, you'll explore how to establish the link between containers and orchestrate containers using Docker Compose. You will also come across relevant details about application testing inside a container. You will discover how to debug a container using the docker exec command and the nsenter tool. Finally, you will learn how to secure your containers with SELinux and other proven methods. « less
Manage and deploy Docker services to containerize applications efficiently
ABOUT THIS BOOK
* Set up your own Heroku-like PaaS by getting accustomed to the Docker ecosystem
* Run your applications on development machines, private servers, or the cloud, with minimal cost of a virtual machine
* A comprehensive guide to the smooth management and development of Docker containers more » and its services
WHO THIS BOOK IS FOR
If you are a competent developer or DevOps with a good understanding of Linux filesystems but want to manage and orchestrate Docker services, images, and products using a multitude of techniques, then this book is for you. No prior knowledge of Docker or container virtualization is required.
WHAT YOU WILL LEARN
* Get familiar with the processes related to the automation of Docker
* Get to grips with various Docker commands and techniques that help you manage containers
* Create your own Docker image and package your web application in the image
* Use Dockerfile DSL to make your Docker images repeatable
* Deploy a high availability service on a cluster using CoreOS and fleet
* Build your application in sandboxed Docker containers
Docker is growing in popularity by day because of its great utility, the fact that it's user friendly, and the vibrant community.
This book will help you transform the way you build, test, and deploy your applications with Docker, making it easier and enjoyable. The book starts off with the installation of Docker before gradually taking you through the different commands to start working with Docker containers and their services. You will learn to build your own Docker containers along with instructions to fine-tune the resource allocations to those containers. You will then learn to manage a cluster of Docker containers. The book demonstrates the processes related to the automation and orchestration of Docker. It then covers the compatibility of Docker with other technologies such as Puppet and Chef. Finally, it prepares you to ship your applications without taking strain for deployment. By the end of the book, you will be able to orchestrate and manage the creation and deployment of Docker containers. « less