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