Docker
Objectives
- Understand what problems Docker solves.
- Understand when Docker might not be the appropriate solution.
- Be able to create basic Docker images.
- Be able to run Docker containers
Audience
- Developers
- Tech Leaders
- QA engineers
- DevOps engineers
- Automation engineers
Course Format
- Typically 8 academic hours. One whole day 9:00-17:00 or two half-days.
- The course includes approximately 40% hands-on lab work.
Prerequisites
- Understanding of Linux
- Basic Administrative knowledge of Linux
- At least 1 year of experience in the software development world.
- Bring a computer where you have rights to install new software.
Syllabus
Introduction to Docker
- Why use Docker?
- What is Docker?
- How can Docker bridge the gap between Developers, QA, and Operations?
- Installing Docker on Windows, macOS, Linux
- Public Docker Images
- Docker Registry / Docker HUB
- Difference between a Docker Image and a Docker Container
- Docker Daemon (Server), Client
Running the first Docker container
- Run a Docker container - Hello World!
- Download a docker image (pull)
- Docker on the command line
- List docker containers
- Cleaning up the dead containers.
- Remove docker container
- Name a docker container
- List docker images
- Remove docker images
Create a Docker image manually
- Use the Ubuntu Docker image
- Use the CentOS Docker image
- Install packages in the container
- Create files on the container
- Stop container
- Restart container
- Copy file from container
- Create image from container
- Distribute command line script in an image
Create a Docker image using Dockerfile
- Create a simple image
- FROM
- RUN
- CMD
- ENTRYPOINT
- COPY
- Distributing a command-line application.
- Accessing the disk on the host system.
- WORKDIR
- ENV
- Layers
- Caching
- Tagging an image
Docker compose
- Run several Docker images at once
- Rebuild docker image when running with docker-compose
- Run multi-host applications using docker-compose.
- Create an image in the repository (from GitHub)
- Networking with docker-compose
Dockerfile commands
- ARG
- ADD
- CMD
- COPY
- ENTRYPOINT
- ENV
- EXPOSE
- FROM
- RUN
- WORKDIR
The Python track
- Distribute a web application: Flask
- Distribute a web application: Flask + Nginx
- Distribute a web application: Flask + Nginx + MongoDB
- Mapping ports of the Docker image and the local system.
- EXPOSE
Use cases for Docker
- Distributing a pre-configured system.
- Distributing a database system.
- Filesystems
- Volumes
Let's talk
If you would like to bring this course to your organization, let's talk about it! You can reach me via email at gabor@szabgab.com or you can go ahead and schedule a chat: