Detailed Course Outline
Container Technology Overview
- Application management landscape
 - Application isolation
 - Resource measurement and control
 - Container security
 - OverlayFS overview
 - Container security
 - Open container initiative
 - Docker alternatives
 - Docker ecosystem
 Lab Tasks
- Container concepts runC
 - Container concepts Systemd
 
Installing Docker
- Installing Docker
 - Docker architecture
 - Starting the Docker daemon
 - Docker daemon configuration
 - Docker control socket
 - Enabling TLS for Docker
 - Validating Docker install
 Lab Tasks
- Installing Docker
 - Protecting Docker with TLS
 
Managing Containers
- Creating a new container
 - Listing containers
 - Managing container resources
 - Running commands in an existing container
 - Interacting with a running container
 - Stopping, starting, and removing containers
 - Copying files in/out of containers
 - Inspecting and updating containers
 - Docker output filtering and formatting
 - Lab Tasks
 - Managing containers
 - Configure a Docker container to start at boot
 
Managing Images
- Docker images
 - Listing and removing images
 - Searching for images
 - Downloading images
 - Uploading images
 - Export/import images
 - Save/load images
 - Committing changes
 Lab Tasks
- Docker images
 - Docker platform images
 
Creating Images with Dockerfile
- Dockerfile
 - Caching
 - Docker image build
 - Dockerfile instructions
 - ENV and WORKDIR
 - Running commands
 - Getting files into the image
 - Defining container executable
 - HEALTHCHECK
 - Best practices
 - Multi-stage builds with Dockerfile
 Lab Tasks
- Dockerfile fundamentals
 - Optimizing image build size
 - Image builds and caching
 
Docker Volumes
- Volume concepts
 - The Docker volume command
 - Creating and using internal volumes
 - Internal volume drivers
 - Removing volumes
 - Creating and using external volumes
 - SELinux considerations
 - Mapping devices
 Lab Tasks
- Docker internal volumes
 - Docker external volumes
 
Docker Compose/Swarm
- Writing YAML files
 - Concepts
 - Compose CLI
 - Defining a service set
 - Compose versions
 - Docker Engine swarm mode
 - Docker swarm terms
 - Docker swarm command overview
 - Creating a swarm
 - Creating services
 - Creating secrets
 - Stack files
 - Stack command
 - Swarm placements
 - Swarm resource limits and reservations
 - Swarm networking
 - Swarm networking troubleshooting
 
Docker Networking
- Overview
 - Data link layer details
 - Network layer details
 - Hostnames and DNS
 - Service reachability
 - Container to container communication
 - Container to container: links
 - Container to container: private network
 - Managing private networks
 - Remote host to container
 Lab Tasks
- Docker networking
 - Exposing ports
 
Docker Logging
- Docker logging
 - Docker logging with json-file and journald
 - Docker logging with syslog
 - Docker logging with Graylog or Logstash
 - Docker logging with Fluentd
 - Docker logging with Amazon or Google
 - Docker logging with Splunk
 Lab Tasks
- Logging to syslog Appendix A
 - Docker Registry Lab Tasks