Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Title Page
Copyright
Docker on Windows
Credits
About the Author
About the Reviewer
www.PacktPub.com
Why subscribe?
Customer Feedback
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Downloading the color images of this book
Errata
Piracy
Questions
Getting Started with Docker on Windows
Docker and Windows containers
Windows licensing
Understanding the key Docker concepts
The Docker service and Docker command-line
Docker images
Image registries
Docker containers
Docker swarm
Running Docker on Windows
Docker for Windows
Docker as a Windows Service
Docker in an Azure VM
Learning Docker with this book
Summary
Packaging and Running Applications as Docker Containers
Running a container from an image
Doing one thing with a task container
Connecting to an interactive container
Keeping a process running in a background container
Building a Docker image
Understanding the Dockerfile
Building an image from a Dockerfile
Examining how Docker builds an image
Packaging your own applications
Compiling the application during the build
Compiling the application before the build
Compiling with multi-stage builds
Using the main Dockerfile instructions
Understanding temporary containers and image state
Working with data in Docker images and containers
Data in layers and the virtual C drive
Sharing data between containers with volumes
Sharing data between container and host with volumes
Mounting volumes from host directories
Using volumes for configuration and state
Packaging a traditional ASP.NET web app as a Docker image
Writing a Dockerfile for NerdDinner
Summary
Developing Dockerized .NET and .NET Core Applications
Building good citizens for Docker
Hosting Internet Information Services (IIS) applications in Docker
Configuring IIS for Docker-friendly logging
Promoting environment variables
Building Docker images that monitor applications
Separating dependencies
Creating Docker images for SQL Server databases
Managing database files for SQL Server containers
Running databases in containers
Connecting to database containers from application containers
Breaking up monolithic applications
Extracting high-value components from monoliths
Hosting a UI component in an ASP.NET Core application
Connecting to application containers from other application containers
Summary
Pushing and Pulling Images from Docker Registries
Understanding registries and repositories
Examining image repository names
Building, tagging, and versioning images
Pushing images to a registry
Running a local image registry
Building the registry image
Running a registry container
Pushing and pulling images with a local registry
Configuring Docker to allow insecure registries
Storing Windows image layers in a local registry
Using a commercial registry
Docker Hub
Docker Cloud
Docker Store
Docker Trusted Registry
Other registries
Summary
Adopting Container-First Solution Design
Design goals for NerdDinner
Dockerizing NerdDinner's configuration
Splitting out the create dinner feature
Packaging .NET console apps in Docker
Running a message queue in Docker
Starting a multi-container solution
Adding new features in containers
Using Elasticsearch with Docker and .NET
Building hybrid .NET Framework and .NET Core solutions in Docker
Compiling the hybrid NerdDinner solution
Packaging .NET Core console apps in Docker
Providing analytics with Kibana
From monolith to distributed solution
Managing build and deployment dependencies
Summary
Organizing Distributed Solutions with Docker Compose
Defining applications with Docker Compose
Capturing service definitions
Defining infrastructure services
Configuring application services
Specifying application resources
Managing applications with Docker Compose
Running applications
Scaling application services
Stopping and starting application services
Upgrading application services
Monitoring application containers
Managing application images
Configuring application environments
Specifying external resources
Using multiple Compose files
Summary
Orchestrating Distributed Solutions with Docker Swarm
Creating a swarm and managing nodes
Creating and managing services in swarm mode
Running services across many containers
Global services
Deploying stacks to Docker swarm
Docker secrets
Defining a stack using Compose files
Deploying a stack from a Compose file
Running Docker swarm in the cloud
Managed Docker services in the cloud
Docker on Amazon Elastic Container Service
Docker on Google Container Platform
Docker on Azure Container Service
Docker cloud editions
Deploying updates with zero downtime
Load balancing across swarm nodes
Updating application services
Rolling back service updates
Configuring update behavior
Updating swarm nodes
Mixing hosts in hybrid swarms
Summary
Administering and Monitoring Dockerized Solutions
Managing containers with Windows tools
IIS Manager
SQL Server Management Studio
Event logs
Server Manager
Managing containers with Docker tools
Docker visualizer
Portainer
CaaS with Docker EE
Understanding UCP
Navigating the UCP UI
Managing nodes
Volumes
Images
Networks
Deploying stacks
Creating services
Monitoring services
RBAC
Summary
Understanding the Security Risks and Benefits of Docker
Understanding container security
Container processes
Container user accounts and ACLs
Running containers with resource constraints
Running containers with restricted capabilities
Isolation in Hyper-V containers
Securing applications with secure Docker images
Building minimal images
Docker Security Scanning
Managing Windows updates
Securing the software supply chain with DTR
Repositories and users
Organizations and teams
Image Signing and Content Trust
Golden images
Understanding security in swarm mode
Nodes and join tokens
Encryption and secrets
Node labels and external access
Summary
Powering a Continuous Deployment Pipeline with Docker
Designing CI/CD with Docker
Running shared development services in Docker
Packaging a Git server into a Windows Docker image
Running the Bonobo Git server in Docker
Packaging a CI server into a Windows Docker image
Running the Jenkins automation server in Docker
Configuring CI/CD using Jenkins in Docker
Setting up Jenkins credentials
Configuring the Jenkins CI job
Building the solution using Docker Compose in Jenkins
Multi-stage builds in CI pipelines
Running and verifying the solution
Running end-to-end tests in Docker
Tagging and pushing Docker images in Jenkins
Deploying to a remote Docker swarm using Jenkins
Summary
Debugging and Instrumenting Application Containers
Working with Docker in integrated development environments
Docker in Visual Studio 2017
Debugging with Docker Compose in Visual Studio 2017
Docker in Visual Studio 2015
Docker in Visual Studio Code
Instrumentation in Dockerized applications
Instrumentation with Prometheus
Adding a Prometheus endpoint to .NET projects
Adding a Prometheus exporter alongside existing apps
Running a Prometheus server in a Windows Docker container
The bug fixing workflow in Docker
Bug fixing before Docker
Bug fixing with Docker
Summary
Containerize What You Know - Guidance for Implementing Docker
Dockerizing what you know
Selecting a simple Proof-of-Concept app
Generating an initial Dockerfile with Image2Docker
Engaging other stakeholders
Case studies for implementing Docker
Case study 1 - an in-house WebForms app
Case study 2 - a database integration service
Case study 3 - an Azure IoT app
Summary
← Prev
Back
Next →
← Prev
Back
Next →