Post

Docker Commands

Let's learn Docker commands to build a image and to run a container.

Docker Commands

Docker Commands

In the previous post, we created a Dockerfile. Now, let’s build a Docker image and run a Docker container to explore various commands. Each command has different options, so it would be helpful to search or ask GPT when needed.

CommandDescriptionExample
docker versionDisplays the installed Docker versiondocker version
docker searchSearch for Docker images in Docker Hubdocker search mysql
docker pullDownloads an image from Docker Hubdocker pull mysql:latest
docker imagesLists locally available Docker imagesdocker images
docker rmiRemoves a Docker imagedocker rmi mysql:latest
docker runCreates and starts a new containerdocker run -d --restart always --name mysqldb -p 3306:3306 -v /dbdata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1234 mysql:latest
docker psLists running containersdocker ps
docker ps -aLists all containers, including stopped onesdocker ps -a
docker createCreates a new containerdocker create --restart always --name mysqldb -p 3306:3306 -v /dbdata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1234 mysql:latest
docker startStarts a stopped containerdocker start mysqldb
docker stopStops a running containerdocker stop mysqldb
docker restartRestarts a containerdocker restart mysqldb
docker rmDeletes a containerdocker rm mysqldb
docker rm -fStops and Deletes a containerdocker rm -f mysqldb
docker inspectretrieves detailed information in JSON format.docker inspect mysqldb
docker execRuns a command inside a running containerdocker exec -it mysqldb /bin/bash
docker logsDisplays logs from a containerdocker logs mysqldb
docker volume lsLists available Docker volumesdocker volume ls
docker volume createCreates a new Docker volumedocker volume create my_volume
docker volume rmDeletes a Docker volumedocker volume rm my_volume
docker buildBuilds a Docker image from a Dockerfiledocker build -t dockertest .
docker tagAdds a tag to an existing imagedocker tag dockertest ds2man/dockertest:v1
docker pushUploads an image to Docker Hubdocker push ds2man/dockertest:v1
docker statsCheck the runtime statistics of a running containerdocker stats ds2man/dockertest:v1

Docker Commands Practice

  • Here are some Docker commands I have executed.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
(MyDev) jaoneol@DESKTOP-B7GM3C5:~/GP-MyReference/10.MyDockerTest$ docker build -t ds2man/dockertest:v0.1 .
[+] Building 1.9s (13/13) FINISHED                                                                                                                                                                                                    docker:default
 => [internal] load build definition from dockerfile                                                                                                                                                                                            0.0s
 => => transferring dockerfile: 1.58kB                                                                                                                                                                                                          0.0s
 => [internal] load metadata for docker.io/library/python:3.11-slim                                                                                                                                                                             1.7s
 => [auth] library/python:pull token for registry-1.docker.io                                                                                                                                                                                   0.0s
 => [internal] load .dockerignore                                                                                                                                                                                                               0.0s
 => => transferring context: 178B                                                                                                                                                                                                               0.0s
 => [1/7] FROM docker.io/library/python:3.11-slim@sha256:42420f737ba91d509fc60d5ed65ed0492678a90c561e1fa08786ae8ba8b52eda                                                                                                                       0.0s
 => [internal] load build context                                                                                                                                                                                                               0.0s
 => => transferring context: 2.00kB                                                                                                                                                                                                             0.0s
 => CACHED [2/7] RUN apt-get update &&     apt-get install -y vim &&     rm -rf /var/lib/apt/lists/*                                                                                                                                            0.0s
 => CACHED [3/7] WORKDIR /app                                                                                                                                                                                                                   0.0s
 => CACHED [4/7] RUN mkdir -p common config                                                                                                                                                                                                     0.0s
 => CACHED [5/7] COPY requirements.txt .                                                                                                                                                                                                        0.0s
 => CACHED [6/7] RUN pip install --no-cache-dir -r requirements.txt                                                                                                                                                                             0.0s
 => [7/7] COPY . /app/                                                                                                                                                                                                                          0.0s
 => exporting to image                                                                                                                                                                                                                          0.0s
 => => exporting layers                                                                                                                                                                                                                         0.0s
 => => writing image sha256:502c0f89c34dbe127a4e4f8bbdec3d9efe2140b8eb702365bea753e323d79a16                                                                                                                                                    0.0s
 => => naming to docker.io/ds2man/dockertest:v0.1                                                                                                                                                                                               0.0s
(MyDev) jaoneol@DESKTOP-B7GM3C5:~/GP-MyReference/10.MyDockerTest$ docker run -d --env-file=.env --name mydocker ds2man/dockertest:v0.1
79685bc8687b1d017163221da1d47fd0df1f3c9ce40a1f016295644e1ab98330
(MyDev) jaoneol@DESKTOP-B7GM3C5:~/GP-MyReference/10.MyDockerTest$ docker ps
CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS         PORTS     NAMES
79685bc8687b   ds2man/dockertest:v0.1   "python dockertest_m…"   26 minutes ago   Up 8 seconds             mydocker
(MyDev) jaoneol@DESKTOP-B7GM3C5:~/GP-MyReference/10.MyDockerTest$ docker stop mydocker
mydocker
(MyDev) jaoneol@DESKTOP-B7GM3C5:~/GP-MyReference/10.MyDockerTest$ docker start mydocker
mydocker
(MyDev) jaoneol@DESKTOP-B7GM3C5:~/GP-MyReference/10.MyDockerTest$ docker inspect mydocker
[
    {
        "Id": "79685bc8687b1d017163221da1d47fd0df1f3c9ce40a1f016295644e1ab98330",
        "Created": "2025-02-11T11:00:50.741714182Z",
        "Path": "python",
        "Args": [
            "dockertest_main.py"
        ],
        "State": {
            "Status": "running",
            "Running": true,
........
........
]
(MyDev) jaoneol@DESKTOP-B7GM3C5:~/GP-MyReference/10.MyDockerTest$ docker exec -it mydocker /bin/bash
root@79685bc8687b:/app# exit
(MyDev) jaoneol@DESKTOP-B7GM3C5:~/GP-MyReference/10.MyDockerTest$ docker logs mydocker
2025-02-11 11:30:31 | MyDockerTest | INFO | [MainThread] Test Start
2025-02-11 11:30:31 | MyDockerTest | INFO | [MainThread] UTC Time: 2025-02-11 11:30:31+00:00, KST Time: 2025-02-11 20:30:31+09:00
2025-02-11 11:30:31 | MyDockerTest | INFO | [MainThread] MySQLDB Connect Test
2025-02-11 11:30:31 | MyDockerTest | INFO | [MainThread] DockerTest End!!
This post is licensed under CC BY 4.0 by the author.