You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Docker has rapidly become the de facto standard for containerizing applications. As a developer or DevOps Engineer/SysAdmin, getting familiar with Docker is crucial for deploying modern, portable applications efficiently.
While Docker boasts numerous advanced features and commands, there are certain essential ones you'll find yourself using consistently on a daily basis.
In this post, we will go through the top 20+ essential Docker commands and their use cases everyone should know.
Installation 🔨
To install Docker on your machine, follow this document (Supported various platforms)
To get hands-on experience and understand Docker better, you could visit this repository
docker --help gets help with Docker. Can also use --help on all subcommands
Syntax: docker <subcommands> --help
Docker Registry
3. docker login
docker login is used to log in to a Docker registry. If no server is specified, the default is defined by the daemon.
Syntax: docker login <options> <registry>
Use cases:
ID
Command
Description
1
docker login
Log in to the default Docker registry
2
docker login myRegistry -u username
Log in to a specified registry with the specified username
4. docker logout
To log out from a Docker registry, use docker logout. This command is used when you want to remove the credentials used to authenticate with a registry.
Syntax: docker logout <registry_url>
Use cases:
ID
Command
Description
1
docker logout
Log out from the default Docker registry
2
docker logout myRegistry
Logout from a specified registry
Docker Images
5. docker build
docker build is used to build custom Docker images from a Dockerfile.
Build an image using a Dockerfile in the current directory
2
docker build -t myImage:v0.1.0 .
Build a Docker image from a Dockerfile with specified tag
3
docker build -t myImage -f demo/Dockerfile
Build an image using a Dockerfile in the demo directory
6. docker tag
docker tag allows you to create a new tag for an existing Docker image.
Syntax: docker tag <source_image> <target_image>
Use cases:
ID
Command
Description
1
docker tag myImage:latest myImage:v2
Create a new tag "v2" for the Docker image "myImage" with tag "latest"
2
docker tag myImage:latest myRegistry/myImage
Tag the Docker image "myImage" with tag "latest" to a registry image tag latest
3
docker tag myImage:latest myRegistry/myImage:1.0.0
Tag the Docker image "myImage" with tag "latest" to a registry image tag 1.0.0
7. docker images
The docker images command lists all Docker images pulled and built on your system. You'll use this frequently to view images before running containers or cleaning up.
Syntax: docker images <options>
Use cases:
ID
Command
Description
1
docker images
List all Docker images on the system
2
docker images -a
List all Docker images, including intermediate ones
8. docker pull
To download an image from a registry like Docker Hub, use docker pull. For example, docker pull nginx fetches the latest nginx image.
Syntax: docker pull <image_name>
Use cases:
ID
Command
Description
1
docker pull nginx
Pull the latest nginx image from Docker Hub
2
docker pull nginx:latest
Pull the latest nginx image from Docker Hub explicitly
3
docker pull myRegistry/myImage:tag
Pull a specific image from a private registry
9. docker push
docker push is used to upload Docker images to a registry.
Syntax: docker push <image_name>
Use cases:
ID
Command
Description
1
docker push myImage
Push the "myImage" image to the default registry
2
docker push myRegistry/myImage:tag
Push a specific tagged version of the "myImage" image to a private registry
10. docker save
To save a Docker image to a .tar file, use docker save. This command allows you to export an image from your local Docker environment into a portable format.
Syntax: docker save -o <output_file> <image_name>
Use cases:
ID
Command
Description
1
docker save -o myImage.tar myImage
Save a Docker image to a local .tar file
2
docker save -o /path/to/output.tar myImage
Save an image to a specific location on your system
11. docker load
To load an image from a saved archive, use docker load. This command is handy when you have an image saved as a .tar file and want to import it into your local Docker environment.
Syntax: docker load -i <path_to_image_archive>
Use cases:
ID
Command
Description
1
docker load -i myImage.tar
Load a Docker image from a local .tar file
2
docker load -i /path/to/image_archive.tar
Load an image from a specific location on your system
12. docker rmi
docker rmi removes one or more Docker images. Make sure there are no stopped containers based on an image before removing it.
Syntax: docker rmi <image_name>
Use cases:
ID
Command
Description
1
docker rmi myImage
Remove the Docker image named "myImage"
2
docker rmi myImage:tag
Remove a specific tagged version of the "myImage" image
Docker Container
13. docker run
docker run creates and starts a new container from an image. You can pass various options to configure the container's networking, set environment variables, map volumes, and more.
Syntax: docker run <options> <image>
Use cases:
ID
Command
Description
1
docker run -d --name mycontainer nginx
Run nginx image in detached mode with container name "mycontainer"
2
docker run -p 8080:80 --name mycontainer nginx
Run nginx image with port mapping from host 8080 to container 80
3
docker run -e MYSQL_ROOT_PASSWORD=password -v /mydata:/var/lib/mysql mysql
Run MySQL image with setting root password
4
docker run -v /mydata:/var/lib/mysql mysql
Run MySQL image and mounting a host directory to container
5
docker run --network=host myImage
Run a container using the host network
6
docker run --privileged myImage
Run a container with extended privileges using the Docker image "myImage"
7
docker run -it myImage /bin/bash
Run an image and open a bash shell inside a container
14. docker ps
Once you have containers running, you'll need docker ps to list them. The basic docker ps shows just running containers. Use docker ps -a to include stopped containers as well.
Syntax: docker ps <options>
Use cases:
ID
Command
Description
1
docker ps
List running containers
2
docker ps -a
List all containers, including stopped ones
15. docker stop/start/restart
These commands allow you to stop, start, or restart one or more running containers. You reference containers by name or ID.
Once you've stopped a container, docker rm removes it entirely from your system. Use docker rm -f to force-remove running containers.
Syntax: docker rm <options> <container>
Use cases:
ID
Command
Description
1
docker rm mycontainer
Remove a stopped container named "mycontainer"
2
docker rm -f mycontainer
Force-remove a running container named "mycontainer"
17. docker logs
When a containerized application is not behaving correctly, docker logs retrieves the logs from a specified container to help troubleshoot.
Syntax: docker logs <options> <container>
Use cases:
ID
Command
Description
1
docker logs mycontainer
Retrieve logs from a container named "mycontainer"
2
docker logs --tail 100 mycontainer
Retrieve last 100 lines of logs from "mycontainer"
18. docker exec
docker exec allows you to run a new command inside an already-running container. For example, starting a Bash shell with docker exec -it <container> /bin/bash.
Which Docker command do you find yourself using the most? Let us know in the comments below. Your feedback and suggestions are highly appreciated. Thank you, and happy coding! 💖