Learn Docker fundamentals of Docker 18.x : everything you need to know about containerizing your applications and running them in production

Enhance your software deployment workflow using containers About This Book Get up-and-running with basic to advanced concepts of Docker Get acquainted with concepts such as Docker containers, Docker images, orchestrators and so on. Practical test-based approach to learning a prominent containerizati...

Descripción completa

Detalles Bibliográficos
Otros Autores: Schenker, Gabriel Nicolas, author (author)
Formato: Libro electrónico
Idioma:Inglés
Publicado: Birmingham ; Mumbai : Packt Publishing 2018.
Edición:1st edition
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009631488806719
Tabla de Contenidos:
  • Cover
  • Title Page
  • Copyright and Credits
  • Packt Upsell
  • Contributors
  • Table of Contents
  • Preface
  • Chapter 1: What Are Containers and Why Should I Use Them?
  • Technical requirements
  • What are containers?
  • Why are containers important?
  • What's the benefit for me or for my company?
  • The Moby project
  • Docker products
  • Docker CE
  • Docker EE
  • The container ecosystem
  • Container architecture
  • Summary
  • Questions
  • Further reading
  • Chapter 2: Setting up a Working Environment
  • Technical requirements
  • The Linux command shell
  • PowerShell for Windows
  • Using a package manager
  • Installing Homebrew on a Mac
  • Installing Chocolatey on Windows
  • Choosing a code editor
  • Docker Toolbox
  • Docker for Mac and Docker for Windows
  • Installing Docker for Mac
  • Installing Docker for Windows
  • Using docker-machine on Windows with Hyper-V
  • Minikube
  • Installing Minikube on  Mac and Windows
  • Testing Minikube and kubectl
  • Summary
  • Questions
  • Further reading
  • Chapter 3: Working with Containers
  • Technical requirements
  • Running the first container
  • Starting, stopping, and removing containers
  • Running a random quotes container
  • Listing containers
  • Stopping and starting containers
  • Removing containers
  • Inspecting containers
  • Exec into a running container
  • Attaching to a running container
  • Retrieving container logs
  • Logging drivers
  • Using a container-specific logging driver
  • Advanced topic - changing the default logging driver
  • Anatomy of containers
  • Architecture
  • Namespaces
  • Control groups (cgroups)
  • Union filesystem (UnionFS)
  • Container plumbing
  • Runc
  • Containerd
  • Summary
  • Questions
  • Further reading
  • Chapter 4: Creating and Managing Container Images
  • What are images?
  • The layered filesystem
  • The writable container layer
  • Copy-on-write
  • Graph drivers.
  • Creating images
  • Interactive image creation
  • Using Dockerfiles
  • The FROM keyword
  • The RUN keyword
  • The COPY and ADD keywords
  • The WORKDIR keyword
  • The CMD and ENTRYPOINT keywords
  • A complex Dockerfile
  • Building an image
  • Multistep builds
  • Dockerfile best practices
  • Saving and loading images
  • Sharing or shipping images
  • Tagging an image
  • Image namespaces
  • Official images
  • Pushing images to a registry
  • Summary
  • Questions
  • Further reading
  • Chapter 5: Data Volumes and System Management
  • Technical requirements
  • Creating and mounting data volumes
  • Modifying the container layer
  • Creating volumes
  • Mounting a volume
  • Removing volumes
  • Sharing data between containers
  • Using host volumes
  • Defining volumes in images
  • Obtaining Docker system information
  • Listing resource consumption
  • Pruning unused resources
  • Pruning containers
  • Pruning images
  • Pruning volumes
  • Pruning networks
  • Pruning everything
  • Consuming Docker system events
  • Summary
  • Questions
  • Further reading
  • Chapter 6: Distributed Application Architecture
  • What is a distributed application architecture?
  • Defining the terminology
  • Patterns and best practices
  • Loosely coupled components
  • Stateful versus stateless
  • Service discovery
  • Routing
  • Load balancing
  • Defensive programming
  • Retries
  • Logging
  • Error handling
  • Redundancy
  • Health checks
  • Circuit breaker pattern
  • Running in production
  • Logging
  • Tracing
  • Monitoring
  • Application updates
  • Rolling updates
  • Blue-green deployments
  • Canary releases
  • Irreversible data changes
  • Rollback
  • Summary
  • Questions
  • Further reading
  • Chapter 7: Single-Host Networking
  • Technical requirements
  • The container network model
  • Network firewalling
  • The bridge network
  • The host network
  • The null network.
  • Running in an existing network namespace
  • Port management
  • Summary
  • Questions
  • Further reading
  • Chapter 8: Docker Compose
  • Technical requirements
  • Demystifying declarative versus imperative
  • Running a multi-service app
  • Scaling a service
  • Building and pushing an application
  • Summary
  • Questions
  • Further reading
  • Chapter 9: Orchestrators
  • What are orchestrators and why do we need them?
  • The tasks of an orchestrator
  • Reconciling the desired state
  • Replicated and global services
  • Service discovery
  • Routing
  • Load balancing
  • Scaling
  • Self-healing
  • Zero downtime deployments
  • Affinity and location awareness
  • Security
  • Secure communication and cryptographic node identity
  • Secure networks and network policies
  • Role-based access control (RBAC)
  • Secrets
  • Content trust
  • Reverse uptime
  • Introspection
  • Overview of popular orchestrators
  • Kubernetes
  • Docker Swarm
  • Apache Mesos and Marathon
  • Amazon ECS
  • Microsoft ACS
  • Summary
  • Questions
  • Further reading
  • Chapter 10: Introduction to Docker Swarm
  • Architecture
  • Swarm nodes
  • Swarm managers
  • Swarm workers
  • Stacks, services, and tasks
  • Services
  • Task
  • Stack
  • Multi-host networking
  • Creating a Docker Swarm
  • Creating a local single node swarm
  • Creating a local swarm in VirtualBox or Hyper-V
  • Using Play with Docker (PWD) to generate a Swarm
  • Creating a Docker Swarm in the cloud
  • Deploying a first application
  • Creating a service
  • Inspecting the service and its tasks
  • Logs of a service
  • Reconciling the desired state
  • Deleting a service or a stack
  • Deploying a multi-service stack
  • The swarm routing mesh
  • Summary
  • Questions
  • Further reading
  • Chapter 11: Zero Downtime Deployments and Secrets
  • Technical requirements
  • Zero downtime deployment
  • Popular deployment strategies
  • Rolling updates.
  • Health checks
  • Rollback
  • Blue-green deployments
  • Canary releases
  • Secrets
  • Creating secrets
  • Using a secret
  • Simulating secrets in a development environment
  • Secrets and legacy applications
  • Updating secrets
  • Summary
  • Questions
  • Further reading
  • Chapter 12: Introduction to Kubernetes
  • Technical requirements
  • Architecture
  • Kubernetes master nodes
  • Cluster nodes
  • Introduction to Minikube
  • Kubernetes support in Docker for Desktop
  • Pods
  • Comparing Docker container and Kubernetes pod networking
  • Sharing the network namespace
  • Pod life cycle
  • Pod specification
  • Pods and volumes
  • Kubernetes ReplicaSet
  • ReplicaSet specification
  • Self-healing
  • Kubernetes deployment
  • Kubernetes service
  • Context-based routing
  • Comparing SwarmKit with Kubernetes
  • Summary
  • Questions
  • Further reading
  • Chapter 13: Deploying, Updating, and Securing an Application with Kubernetes
  • Technical requirements
  • Deploying a first application
  • Deploying the web component
  • Deploying the database
  • Streamlining the deployment
  • Zero downtime deployments
  • Rolling updates
  • Blue-green deployment
  • Kubernetes secrets
  • Manually defining secrets
  • Creating secrets with kubectl
  • Using secrets in a pod
  • Secret values in environment variables
  • Summary
  • Questions
  • Further reading
  • Chapter 14: Running a Containerized App in the Cloud
  • Technical requirements
  • Deploying our application into AWS ECS
  • Introduction to ECS
  • Creating a Fargate ECS cluster of AWS
  • Authoring a task definition
  • Running a task in ECS
  • Modifying the task definition
  • Adding the database component to the application
  • Deploying and using Docker EE on AWS
  • Provisioning the infrastructure
  • Installing Docker
  • Installing Docker UCP
  • Remote admin the UCP cluster
  • Deploying to Docker Swarm.
  • Deploying to Kubernetes
  • A short peek into Azure's container offerings
  • A short peek into Google's container offerings
  • Summary
  • Questions
  • Further reading
  • Assessment
  • Other Books You May Enjoy
  • Index.