What is Docker?
Docker is an open platform for developing, shipping and running applications.
Docker is a platform which packages an application and all its dependencies together in the form of containers.
What problem does Docker solve?
The main problem it solves is dependency management.

Docker Architecture

Some Terms to Understand
- Docker Daemon: Daemon is a program which runs on our computer and manages docker containers.
- Docker file: It is a text document which contains all the commands that a user can call on the command line to assemble an image.
- Images: Template to create docker container.
- Container: Running instance of docker image.Containers hold entire package to run application.
Basic Commands for Docker
docker -v
docker pull <image-name>
docker images
docker search <image-name>
docker run <image-name>
- list all the running containers
docker ps
- list all the running + stopped containers
docker ps -a
- run container in background(detached mode) + change the name of container.
docker run --name <custom-name> -d <image-name/image-id>
- run container in -it {interactive-mode}, your container will run continuously
docker run --name <custom-name> -it -d <image-id/name>
- to execute the command inside your container
docker exec -it <container-id> command{python3/bash/java/cpp}
- get all the information about the container
docker inspect <container-id>
- stop the running container
docker stop <containerName>
docker rm <image-name>
- to restart the running container
docker restart <container-id>
My-SQL Image Commands
docker install mysql
docker run --name <custome-mysql-name> -e MYSQL_ROOT_PASSWORD=<give-a-pass> -d mysql
- use commands inside mysql container
docker exec -it <custom-sql-name> <command-type>
Docker for Touchstone MCQ Test
1. Docker Basics
- What is Docker?
- Benefits of using Docker
- Docker vs Virtual Machines
- Docker Architecture
- Docker Engine
- Docker Daemon
- Docker Client
2. Docker Images
- What is a Docker Image?
- Layers in Docker Images
- Docker Hub and Image Registries
- Pulling Images
docker pull
- Listing Images
docker images
- Removing Images
docker rmi
- Custom Images using Dockerfile
(See Dockerfile section below)
3. Docker Containers
- What is a Container?
- Creating Containers
docker run
- Listing Containers
docker ps
, docker ps -a
- Starting/Stopping/Removing Containers
docker start
, docker stop
, docker rm
- Inspecting Containers
docker inspect
- Container Lifecycle
- Running containers in detached mode
-d
- Executing commands inside containers
docker exec
, docker attach
- Logs and Terminal access
docker logs
, docker exec -it
4. Dockerfile (Creating Custom Images)
- What is a Dockerfile?
- Basic Dockerfile Instructions
FROM
RUN
COPY
ADD
CMD
ENTRYPOINT
EXPOSE
ENV
WORKDIR
- Building Image from Dockerfile
docker build
- Best practices
- Minimizing layers
- Using
.dockerignore
5. Docker Volumes (Data Persistence)
- What is a Volume?
- Types
- Creating Volumes
docker volume create
- Mounting Volumes to Containers
-v
or --mount
- Inspecting Volumes
docker volume inspect
- Volume Persistence and Sharing between Containers
6. Docker Networking
- Default Docker Networks
- Creating Custom Networks
docker network create
- Connecting Containers to Networks
--network
- Inspecting Networks
docker network inspect
- Communication between containers
Via network name
7. Docker Compose (Multi-container Applications)
- What is Docker Compose?
docker-compose.yml
file structure
version
services
build
ports
volumes
depends_on
networks
- Running with Compose
docker-compose up
, docker-compose down
- Building and Rebuilding
docker-compose build
, docker-compose up --build
- Scaling services
docker-compose up --scale
- Use cases and benefits