Developing with Docker
Author: Jaroslaw Krochmalski
Publisher: Packt Publishing Ltd
Change the way your organization deploys software at scale with this fast-paced guide to the world of Docker About This Book Cut through the noise and in simple terms learn to package your applications and test, ship, and scale your containers Find and build images and successfully run your programs within containers Build, deploy, and test your Docker containers and put them to work in production Who This Book Is For This book is for IT professionals, system administrators, and DevOps professionals or anyone looking to quickly develop and deploy software to production at scale. If you are interested in Docker, DevOps, or containers in general, don't look any further. What You Will Learn Understand Docker's architecture Build, ship, and run distributed applications Deploy, automate, and manage the execution of applications within Docker Scale and virtualize images and containers Utilize the networking features that Docker offers Use repositories to store and retrieve images In Detail This fast-paced practical guide will get you up and running with Docker. Using Docker, you will be able to build, ship, and run many distributed applications in real time. You will start with quickly installing Docker and start working with images and containers. We will present different types of containers and their applications, and show you how to find and build images. You will learn how you can contribute to the image repository by publishing different images. This will familiarize you with the image building process and you will be able to successfully run your programs within containers. By finishing this book, you will be well equipped in deploying your applications using Docker and will have a clear understanding of concepts, techniques, and practical methods to get it running in production systems. Style and approach This book takes a fast-paced practical approach that quickly gets you up and running with Docker so that you spend less time learning and more time deploying Docker containers effectively. This book contains a mix of concepts, practical examples, techniques, and the most up-to-date content to run things effectively in production. We'll show you the easiest way to speed up your development and deployment with Docker.
Author: Adrian Mouat
Publisher: "O'Reilly Media, Inc."
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
Leverage the lethal combination of Docker and Kubernetes to automate deployment and management of Java applications About This Book Master using Docker and Kubernetes to build, deploy and manage Java applications in a jiff Learn how to create your own Docker image and customize your own cluster using Kubernetes Empower the journey from development to production using this practical guide. Who This Book Is For The book is aimed at Java developers who are eager to build, deploy, and manage applications very quickly using container technology. They need have no knowledge of Docker and Kubernetes. What You Will Learn Package Java applications into Docker images Understand the running of containers locally Explore development and deployment options with Docker Integrate Docker into Maven builds Manage and monitor Java applications running on Kubernetes clusters Create Continuous Delivery pipelines for Java applications deployed to Kubernetes In Detail Imagine creating and testing Java EE applications on Apache Tomcat Server or Wildfly Application server in minutes along with deploying and managing Java applications swiftly. Sounds too good to be true? But you have a reason to cheer as such scenarios are only possible by leveraging Docker and Kubernetes. This book will start by introducing Docker and delve deep into its networking and persistent storage concepts. You will then proceed to learn how to refactor monolith application into separate services by building an application and then packaging it into Docker containers. Next, you will create an image containing Java Enterprise Application and later run it using Docker. Moving on, the book will focus on Kubernetes and its features and you will learn to deploy a Java application to Kubernetes using Maven and monitor a Java application in production. By the end of the book, you will get hands-on with some more advanced topics to further extend your knowledge about Docker and Kubernetes. Style and approach An easy-to-follow, practical guide that will help Java developers develop, deploy, and manage Java applications efficiently.
Author: Deepak Vohra
In this fast-paced book on the Docker open standards platform for developing, packaging and running portable distributed applications, Deepak Vorhadiscusses how to build, ship and run applications on any platform such as a PC, the cloud, data center or a virtual machine. He describes how to install and create Docker images. and the advantages off Docker containers.The remainder of the book is devoted to discussing using Docker with important software solutions. He begins by discussing using Docker with a traditional RDBMS using Oracle and MySQL. Next he moves on to NoSQL with chapter on MongoDB Cassandra, and Couchbase. Then he addresses the use of Docker in the Hadoop ecosystem with complete chapters on utilizing not only Hadoop, but Hive, HBase, Sqoop, Kafka, Solr and Spark. What You Will Learn How to install a Docker image How to create a Docker container How to run an Application in a Docker Container Use Docker with Apache Hadoop Ecosystem Use Docker with NoSQL Databases Use Docker with RDBMS Who This Book Is ForApache Hadoop Developers. Database developers. NoSQL Developers.
Learn the key differences between containers and virtual machines. Adopting a project based approach, this book introduces you to a simple Python application to be developed and containerized with Docker. After an introduction to Containers and Docker you'll be guided through Docker installation and configuration. You'll also learn basic functions and commands used in Docker by running a simple container using Docker commands. The book then moves on to developing a Python based Messaging Bot using required libraries and virtual environment where you'll add Docker Volumes to your project, ensuring your container data is safe. You'll create a database container and link your project to it and finally, bring up the Bot-associated database all at once with Docker Compose. What You'll Learn Build, run, and distribute Docker containers Develop a Python App and containerize it Use Dockerfile to run the Python App Define and run multi-container applications with Docker Compose Work with persisting data generated by and used by Docker containers Who This Book Is For Intermediate developers/DevOps practitioners who are looking to improve their build and release workflow by containerizing applications
Author: Sébastien Goasguen
Publisher: "O'Reilly Media, Inc."
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
Book + Content Update Program “Beyond just describing the basics, this book dives into best practices every aspiring microservices developer or architect should know.” —Foreword by Corey Sanders, Partner Director of Program Management, Azure Microservice-based applications enable unprecedented agility and ease of management, and Docker containers are ideal for building them. Microsoft Azure offers all the foundational technology and higher-level services you need to develop and run any microservices application. Microservices with Docker on Microsoft Azure brings together essential knowledge for creating these applications from the ground up, or incrementally deconstructing monolithic applications over time. The authors draw on their pioneering experience helping to develop Azure’s microservices features and collaborating with Microsoft product teams who’ve relied on microservices architectures for years. They illuminate the benefits and challenges of microservices development and share best practices all developers and architects should know. You’ll gain hands-on expertise through a detailed sample application, downloadable at github.com/flakio/flakio.github.io. Step by step, you’ll walk through working with services written in Node.js, Go, and ASP.NET 5, using diverse data stores (mysql, elasticsearch, block storage). The authors guide you through using Docker Hub as a service registry, and Microsoft Azure Container service for cluster management and service orchestration. Coverage includes: Recognizing how microservices architectures are different, and when they make sense Understanding Docker containers in the context of microservices architectures Building, pulling, and layering Docker images Working with Docker volumes, containers, images, tags, and logs Using Docker Swarm, Docker Compose, and Docker Networks Creating Docker hosts using the Azure portal, Azure Resource Manager, the command line, docker-machine, or locally via Docker toolbox Establishing development and DevOps environments to support microservices applications Making the most of Docker’s continuous delivery options Using Azure’s cluster and container orchestration capabilities to operate and scale containerized microservices applications with maximum resilience Monitoring microservices applications with Azure Diagnostics, Visual Studio Application Insights, and Microsoft Operations Management Suite Developing microservices applications faster and more effectively with Azure Service Fabric An extensive sample application demonstrating the microservices concepts discussed throughout the book is available online In addition, this book is part of InformIT’s exciting new Content Update Program, which provides content updates for major technology improvements! As significant updates are made to Docker and Azure, sections of this book will be updated or new sections will be added to match the updates to the technologies. As updates become available, they will be delivered to you via a free Web Edition of this book, which can be accessed with any Internet connection. To learn more, visit informit.com/cup. How to access the Web Edition: Follow the instructions inside to learn how to register your book to access the FREE Web Edition.
Find out how to use Docker in your ASP.NET Core MVC applications, and how containers make it easier to develop, deploy and manage those applications in production environments. Packed with examples and practical demonstrations, this book will help you deploy even large-scale, cross-platform web applications from development into production. Best-selling author Adam Freeman takes you on a whirlwind tour of Docker, from creating a consistent development environment for your team to deploying a project and scaling it up in production. By the end of the book, you will have a solid understanding of what Docker does, how it does it and why it is useful when developing and deploying ASP.NET Core MVC applications. What You Will Learn Gain a solid understanding of Docker: what it is, and why you should be using it for your ASP.NET Core MVC applications Use Docker to create a development platform for ASP.NET Core MVC so that applications behave consistently across development and production Use Docker to test, deploy and manage ASP.NET Core MVC containers Use Docker Swarms to scale up applications to cope with large workloads Who This Book Is For ASP.NET Core MVC developers who want to use Docker to containerize and manage their applications
Design, develop, and deploy a real-world web application by leveraging modern open source technologies. This book shows you how to use ASP.NET Core to build cross-platform web applications along with SignalR to enrich the application by enabling real-time communication between server and clients. You will use Docker to containerize your application, integrate with GitHub to package the application, and provide continuous deployment to Azure’s IaaS platform. Along the way, Real-Time Web Application Development covers topics including designing a Materialize CSS theme, using a test-driven development approach with xUnit.net, and securing your application with the OAuth 2.0 protocol. To further your understanding of the technology, you will learn logging and exception handling; navigation using view components; and how to work with forms and validations. The rich code samples from this book can be used to retrofit or upgrade existing ASP.NET Core applications. What You Will Learn Design and develop a real-world web application Implement security and data storage with OAuth2 and Azure Table Storage Orchestrate real-time notifications through SignalR Use GitHub and Travis CI for continuous integration of code Master Docker containerization and continuous deployment with Docker Cloud to Azure Linux virtual machines Who This Book Is For Developers and software engineers interested in learning an end-to-end approach to application development using Microsoft technologies.
Docker: Up & Running
Author: Sean P. Kane, Karl Matthias
Publisher: "O'Reilly Media, Inc."
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
Discover how a software engineer can leverage Docker in order to expedite development velocity. This book focuses on the fundamental concepts this program is built upon and explores how it can help you get your services up and running inside Docker containers. You'll also review tips on how to debug microservices applications that run inside Docker containers. Tech companies are now developing complex softwares that are comprised of multiple services running on different platforms, and Docker has become an essential part of coordinating the communication between these services and platforms. This book addresses problems caused by drifting microservices, debugging across services, inconsistent environments across machines, and coordinating development of machine learning systems between a team of developers, etc. Accelerating Development Velocity Using Docker puts you on the path to transforming your complex systems into more efficient ones. What You'll Learn Setup Docker and employ quick solutions to road blocks Review challenges associated with debugging microservices that sit behind a complex application Leverage Docker features to seamlessly get multiple microservices up and running Debug inside a Docker container Review advanced use cases of Docker that can help consistency of development environments· Who This Book Is For Ideal for new to mid-level infrastructure engineers who want to learn how to make their development environments efficient across their and cross teams, or for students who aspire to learn basics of how to debug distributed systems and how to develop efficient applications.
Learn to write test-driven microservices, REST APIs, and web service APIs with PHP using the Lumen micro-framework, from the now popular Laravel family. This book shows you how testing APIs can help you write bullet-proof web application services and microservices. In the Lumen Programming Guide you will learn how to use Lumen—a micro-framework by Laravel—to write bullet-proof APIs. Lumen helps you write productive, maintainable APIs using modern application design. You will learn how to write fully-tested APIs and understand essential Lumen concepts used to build a solid foundation for writing API projects. What You Will Learn Maintain your API's database structure through built-in database migrations Write tests with factory data in a test database Respond with consistent data output in JSON Deal with PHP exceptions by using JSON responses Create, read, update, and delete REST resources Represent model associations in API responses Build a solid foundation for writing tests with PHPUnit and Mockery Validate data Who This Book Is For PHP developers with no Laravel experience. Only a basic understanding of HTTP and writing PHP applications is needed to get started.
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.
Learn Docker "infrastructure as code" technology to define a system for performing standard but non-trivial data tasks on medium- to large-scale data sets, using Jupyter as the master controller. It is not uncommon for a real-world data set to fail to be easily managed. The set may not fit well into access memory or may require prohibitively long processing. These are significant challenges to skilled software engineers and they can render the standard Jupyter system unusable. As a solution to this problem, Docker for Data Science proposes using Docker. You will learn how to use existing pre-compiled public images created by the major open-source technologies—Python, Jupyter, Postgres—as well as using the Dockerfile to extend these images to suit your specific purposes. The Docker-Compose technology is examined and you will learn how it can be used to build a linked system with Python churning data behind the scenes and Jupyter managing these background tasks. Best practices in using existing images are explored as well as developing your own images to deploy state-of-the-art machine learning and optimization algorithms. What You'll Learn Master interactive development using the Jupyter platform Run and build Docker containers from scratch and from publicly available open-source images Write infrastructure as code using the docker-compose tool and its docker-compose.yml file type Deploy a multi-service data science application across a cloud-based system Who This Book Is For Data scientists, machine learning engineers, artificial intelligence researchers, Kagglers, and software developers
Docker on Windows
Author: Elton Stoneman
Publisher: Packt Publishing Ltd
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.