DevOps is a natural evolution of software development. DevOps is not just a tool, a framework, or just automation. It is a combination of all these. DevOps aimed to align the Dev and Ops team with shared goals. A developer builds an application and sends it to the tester. But, the environments of development and testing systems are different; thus, the code does not work. There are two solutions to this: Docker and Virtual Machines.
Dockers have been used widely in many DevOps toolchains. Dockers platform provides numerous features that make it popular among developers. Some features include application isolation, portability, security management, Ease of software delivery, scalability, etc. Let's discuss the docker commands in more detail, along with examples! You can refer to the best Docker courses for training related to docker and docker commands.
What is Docker?
Docker is a platform that enables the creation, deployment, and running of applications with the help of containers. A container is a unit of software that packages the code and all its dependencies together so that the application becomes runnable irrespective of the environment.
The container isolates the application and its dependencies into a self-contained unit that can run anywhere. Container removes the need for physical hardware, allowing for more efficient use of computing resources. Containers provide operating-system-level virtualization. Additionally, using Docker commands, developers can easily manage these containers, enhancing their productivity and workflow efficiency.
Let's understand a few of the above commands along with their usage in detail. The following are the most used docker basic commands for beginners and experienced docker professionals.
Here is the list of 50+ basic docker commands:
Top 15 Basic Docker Commands
1. docker –version
This command is used to get the current version of the docker
Syntax:
docker - -version [OPTIONS]
By default, this will render all version information in an easy-to-read layout.
2. docker pull
Pull an image or a repository from a registry
Syntax:
docker pull [OPTIONS] NAME[: TAG|@DIGEST]
To download an image or set of images (i.e. A Repository) , Once can use docker pull command
Example:
$ docker pull dockerimage
3. docker run
This command is used to create a container from an image
Syntax:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
The docker run command creates a writeable container layer over the specified image and then starts it using the specified command.
The docker run command can be used with many variations, One can refer to the following documentation docker run.
4. docker ps
This command is used to list all the containers
Syntax:
docker ps [OPTIONS]
The above command can be used with other options like - all or –a
docker ps -all: Lists all containers
Example:
$ docker ps
$ docker ps -a
5. docker exec
This command is used to run a command in a running container
Syntax
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
Docker exec command runs a new command in a running container.
Refer to the following article for more detail regarding the usage of the docker exec command docker exec.
6. docker stop
This command is used to stop one or more running containers.
Syntax:
docker stop [OPTIONS] CONTAINER [CONTAINER...]
The main process inside the container will receive SIGTERM, and after a grace period, SIGKILL. The first signal can be changed with the STOPSIGNAL instruction in the container’s Dockerfile, or the --stop-signal option to docker run.
Example:
$ docker stop my_container
7. docker restart
This command is used to restart one or more containers.
Syntax: docker restart [OPTIONS] CONTAINER [CONTAINER...]
Example:
$ docker restart my_container
8. docker kill
This command is used to kill one or more containers.
Syntax: docker kill [OPTIONS] CONTAINER [CONTAINER...]
Example:
$ docker kill my_container
9. docker commit
This command is used to create a new image from the container image.
Syntax: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
Docker commit command allows users to take an existing running container and save its current state as an image
There are certain steps to be followed before running the command
- First , Pull the image from docker hub
- Deploy the container using the image id from first step
- Modify the container (Any changes ,if needed)
- Commit the changes
Example:
$ docker commit c3f279d17e0a dev/testimage:version3.
10. docker push
This docker command is used to push an image or repository to a registry.
Syntax: docker push [OPTIONS] NAME[: TAG]
Use docker image push to share your images to the Docker Hub registry or to a self-hosted one.
Example:
$ docker image push registry-host:5000/myadmin/rhel-httpd:lates
Apart from the above commands, we have other commands for which the detailing can be found in the following link Docker reference.
11. docker rm
This command is used to remove one or more docker containers. We can use options such as -f i.e. force removal of running container which internally uses SIGKILL. Or -v which removes any anonymous volumes associated with the container.
Syntax: docker rm [OPTIONS] CONTAINER [CONTAINER...]
Example:
docker rm container1
Removing multiple containers:
docker rm container1 container2 container3
Removing with -v and -f options:
docker rm -v container1
docker rm -f running_container
12. docker rmi
This command is used to remove one or more docker images from the system. We can use some common options such as - f for force removal of an image or --no-prune for not deleting untagged parent images.
Syntax:
docker rmi [OPTIONS] IMAGE
docker rmi my_image:tag
docker rmi image1:tag image2:tag image3:tag
docker rmi -f my_image:tag
docker rmi --no-prune my_image:tag
13. docker push
This command is used to upload the docker image to a Docker registry such as Docker Hub or a private registry.
Syntax: docker push [OPTIONS] NAME[:TAG]
Example:
Command: docker push myusername/myrepository:latest
14. docker login
This command is used to log in to the Docker registry such as Docker Hub, a private registry, or any other third-party registry. We can use some common options such as -u for the username of the registry, -p for the password of the registry.
Syntax: docker login [OPTIONS] [SERVER]
Examples:
Command: docker login
Command: docker login -u myusername -p mypassword
Note: In case we need to log in to other Docker registries:
Command: docker login myregistry.com
15. docker start
This command is used to start one or more containers. We can use common options such as -a to attach stderr /stdout and forward signal. Also -i option can be used as an interactive mode where the container STDIN can be attached.
Syntax: docker start [OPTIONS] CONTAINER [CONTAINER...]
Example:
Starting Single Container:
Command: docker start container1
One can become DevOps certified by referring to DevOps Certification courses.
57 Essential Docker Commands List
Here are the top 57 essential/ basic docker commands with descriptions to learn and use.
Docker Use Cases
Let's understand a few of the docker use cases:
Use case 1: Developers write their code locally and can share it using docker containers.
Use case 2: Fixing the bugs and deploying them into the respective environments is as simple as pushing the image to the respective environment.
Use case 3: Using docker one can push their application to the test environment and execute automated and manual tests
Use case 4: One can make their deployment responsive and scalable by using docker since docker can handle dynamic workloads feasibility.
Let us take an example of an application,
When a company wants to develop a web application, it needs an environment where they have a Tomcat server installed. Once the tester set up a tomcat environment and test the application, it is deployed into a production environment. Once again the tomcat has to be setup in a production environment to host the java web application There are some issues with this approach:
- Loss of time and effort.
- Developer and tester might use a different tomcat versions.
Now, let's see how the Docker container can be used to prevent this loss.
In order to overcome the issues, docker will be used by a developer to create a docker image using a base image which is already existing in Docker hub. Docker hub has some base images available for free. Now this image can be used by the developer, tester, and the system admin to deploy a Tomcat environment using Docker Commands. In this way, Docker container solves the problem.
Docker Architecture
Docker architecture generally consists of a Docker Engine which is a client-server application with three major components:
- Generally, docker follows a client-server architecture
- The client communicates with the daemon, which generally takes up the task of building,running, and shipping the docker containers.
- The client and daemon communicate using REST API calls. These calls act as an interface between the client and daemon
- A command-line interface, Docker CLI runs docker commands. Some basic docker commands with examples are listed in the next section.
- Registry stores the docker images
Conclusion
DevOps (development + operations) is an evolution born between developers and system administrators. One of the main tasks of DevOps is the automation and centralization of software development and deployment. One of the most popular tools that helps solve this task is Docker. To get a better understanding of Docker commands and more, enroll in Docker Kubernetes training.
Three main features of Docker products are the most distinguishing:
- Quick deployment in a variety of environments
- Greatly facilitated testing
- Possibility of using Docker as a development environment.
Learning the top Docker commands is essential for any DevOps professional looking to streamline container management and deployment processes. As you continue to explore and learn more about Docker, keeping these commands at your fingertips will prove invaluable in your journey toward DevOps operational excellence.