Traffine I/O

日本語

2022-06-08

Dockerコマンド

はじめに

この記事では、Dockerコンテナとイメージの管理に必要な様々なDockerコマンドについて解説します。各コマンドについて、コードと出力の例を紹介します。

docker pull

docker pullコマンドを使用すると、Docker HubのようなリモートDockerレジストリからイメージをダウンロードできます。

bash
$ docker pull ubuntu:20.04

20.04: Pulling from library/ubuntu
Digest: sha256:cfb43ffdb609eb9c3ecd47d8e48e16f7abbb1c95b7340d8f883942e0730e950a
Status: Downloaded newer image for ubuntu:20.04
docker.io/library/ubuntu:20.04

docker build

docker buildコマンドは、Dockerfileとビルドコンテキスト(通常はプロジェクトディレクトリ)からDockerイメージを作成します。

bash
$ docker build -t yourusername/your-image:tag .

Sending build context to Docker daemon  2.048kB
Step 1/5 : FROM node:14
 ---> 91e0ff2b2a31
Step 2/5 : WORKDIR /app
 ---> Using cache
 ---> 0a0d332bddc2
Step 3/5 : COPY package*.json ./
 ---> Using cache
 ---> 7bf6e8c6d4ea
Step 4/5 : RUN npm install
 ---> Using cache
 ---> 15a0c0a4812e
Step 5/5 : COPY . .
 ---> 9adad8d1eeca
Successfully built 9adad8d1eeca
Successfully tagged yourusername/your-image:tag

docker run

docker runコマンドは、Dockerイメージから新しいコンテナを作成して起動します。

bash
$ docker run -d -p 8080:80 --name your-container yourusername/your-image:tag

ac7e2b3a3f7de342d0a16a7f13ea8c3425d58f5e5c5e5eb5

docker exec

docker execコマンドを使用すると、実行中のコンテナ内でコマンドを実行できます。

bash
$ docker exec -it your-container bash

root@ac7e2b3a3f7d:/app#

docker stop

docker stopコマンドは、実行中のコンテナを停止します。

bash
$ docker stop your-container

your-container

docker start

docker startコマンドは、停止中のコンテナを起動します。

bash
$ docker start your-container

your-container

docker restart

docker restartコマンドは、実行中のコンテナを再起動します。

bash
$ docker restart your-container

your-container

docker push

docker pushコマンドを使用すると、Dockerイメージをリモートレジストリにアップロードできます。

bash
$ docker push yourusername/your-image:tag

The push refers to repository [docker.io/yourusername/your-image]
tag: digest: sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef size: 1234

docker ps

docker psコマンドは、全ての実行中のコンテナを一覧表示します。

bash
$ docker ps

CONTAINER ID   IMAGE                      COMMAND                  CREATED          STATUS          PORTS                  NAMES
ac7e2b3a3f7d   yourusername/your-image:tag   "docker-entrypoint.s…"   3 minutes ago    Up 3 minutes    0.0.0.0:8080->80/tcp   your-container

docker images

docker imagesコマンドは、システムにある全てのDockerイメージを一覧表示します。

bash
$ docker images

REPOSITORY             TAG       IMAGE ID       CREATED          SIZE
yourusername/your-image tag       9adad8d1eeca   4 hours ago      939MB
ubuntu                 20.04     2c047404e52d   2 weeks ago      72.9MB
node                   14        91e0ff2b2a31   3 weeks ago      943MB

docker rm

docker rmコマンドは、停止したコンテナを削除します。

bash
$ docker rm your-container

your-container

docker rmi

docker rmiコマンドは、未使用のDockerイメージを削除します。

bash
$ docker rmi yourusername/your-image:tag

Untagged: yourusername/your-image:tag
Deleted: sha256:9adad8d1eeca0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e

docker logs

docker logsコマンドは、コンテナのログを表示します。

bash
$ docker logs your-container

Starting application...
Listening on port 80

docker attach

docker attachコマンドを使用すると、ターミナルを実行中のコンテナにアタッチできます。

bash
$ docker attach your-container

Listening on port 80

docker cp

docker cpコマンドを使用すると、コンテナとホストシステム間でファイルをコピーできます。

bash
$ docker cp your-container:/app/data.txt /path/to/host/data.txt

(no output unless there's an error)

docker commit

docker commitコマンドを使用すると、コンテナの変更から新しいイメージを作成できます。

bash
$ docker commit -m "Added new features" -a "Your Name" your-container yourusername/your-image:new-tag

sha256:abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789

docker system prune

docker system pruneコマンドを使用すると、停止したコンテナ、使用されていないネットワーク、およびダングリングイメージなど、未使用のデータを削除できます。

bash
$ docker system prune

WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!