この記事では基本的なdocker
コマンドの使い方を説明する。
イメージ関連の操作
Docker Hubからのイメージの取得 (docker pull
)
Docker Hubはイメージを公開して配布しているサービス(レジストリ)の一つ。 docker pull
コマンドを使うことで、Docker Hubからイメージを取ってくることができる。
Docker Hub Container Image Library
https://hub.docker.com/
# alpineという名前の軽量イメージを取ってくる
docker pull alpine
Using default tag: latest
latest: Pulling from library/alpine
Digest: sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1
Status: Image is up to date for alpine:latest
docker.io/library/alpine:latest
イメージは{イメージ名}:{タグ}
という形式で指定し、 {タグ}
を省略した場合は自動的にlatest
というタグになる。 上のコマンドの場合は、alpine:latest
になる。
イメージ一覧の確認 (docker images
)
docker images
コマンドで自分のPCにあるイメージのリストを表示することができる。 (ここでは最初の2行だけ表示している)
REPOSITORY TAG IMAGE ID CREATED SIZE
alpine latest 02f8efbefad6 2 weeks ago 8.51MB
イメージの削除 (docker rmi
)
docker rmi
コマンドで自分のPCにあるイメージを削除することが出来る。 消したいイメージから起動したコンテナが存在する場合は、そのイメージを消すことはできない。 後で説明するdocker rm
でコンテナを削除してから、イメージを削除する。
docker images | grep alpine
docker rmi alpine
alpine latest 02f8efbefad6 2 weeks ago 8.51MB
Untagged: alpine:latest
Untagged: alpine@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1
Deleted: sha256:02f8efbefad605a169e89926147edd0676646263268f303c6fb3cdfdbc4a9612
Deleted: sha256:0b83d017db6efafadf6b3f18d087d2ce1d67d8f0e927dc7254b0ad088074cd3a
コンテナ関連の操作
コンテナの作成と起動 (docker run
)
docker run
コマンドで指定したイメージからコンテナを起動できる。
# 削除したalpineイメージをもう一度pullする。メッセージが出ないようにリダイレクト
docker pull alpine > /dev/null
# alpineイメージからコンテナを作成して、unameコマンドを実行してOSの種類を確認
docker run alpine uname -a
Linux 745f0095cc68 6.10.14-linuxkit #1 SMP Sat May 17 08:28:57 UTC 2025 aarch64 Linux
docker run
コマンドはコンテナの作成と起動を行う。 起動したコンテナはそのままでは削除されないので、後で説明するdocker rm
コマンドを使って自分で削除する。 手作業で削除するのが面倒な場合は、--rm
フラグをdocker run
コマンドにつけて実行することで、 コンテナを抜けたときに自動で削除される。
コンテナからホスト側のファイルやディレクトリにアクセスするには、 -v
フラグを使って、ホスト側のディレクトリをコンテナ側のディレクトリにリンクする。
# -v フラグは以下の形式で指定する
# -v {ホスト側ディレクトリのパス}:{コンテナ側ディレクトリのパス}
# 例えばホストの今いるディレクトリを、コンテナの/dataにリンクしたい場合は次のようにする
docker run --rm -v ` pwd ` :/data alpine ls -l /data
total 16
drwxr-xr-x 3 root root 96 Jul 30 05:25 cowsay
-rw-r--r-- 1 root root 7274 Jul 30 05:36 index.qmd
-rw-r--r-- 1 root root 7359 Jul 30 05:36 index.rmarkdown
コンテナのシェルの中に入って、インタラクティブに操作を行いたい場合は、 -it
フラグをつけて実行する。 また、環境変数を追加・上書きするには、-e
フラグを使って指定する。
# コンテナ内のシェルのプロンプト(PS1)を、'NewPrompt) 'に変更する
docker run --rm -it -e PS1='NewPrompt) ' alpine
コンテナ一覧の確認 (docker ps
)
docker ps
コマンドで現在あるコンテナの一覧を表示できる。 停止中のものも含めてすべてのコンテナを表示するために、-a
フラグをつけるとよい。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
745f0095cc68 alpine "uname -a" Less than a second ago Exited (0) Less than a second ago hungry_mestorf
コンテナの削除 (docker rm
)
docker rm
コマンドでコンテナを削除することが出来る。 ただし、コンテナが起動している状態の場合はそのコンテナを消すことはできない。 後で説明するdocker stop
, docker kill
で実行中のコンテナを停止してから、コンテナを削除する。
Deleted Containers:
745f0095cc686f0dd838b4af9bac6671b442ec5a00c3265e76da78adb9efaf5d
Total reclaimed space: 0B
コンテナの停止 (docker stop
, docker kill
)
コンテナの停止にはdocker stop
コマンド、強制停止にはdocker kill
コマンドを使う。
# yesコマンドはずっとyを出力し続けるコマンド
# -dフラグをつけてコンテナを抜けつつ、yesコマンドでコンテナを実行し続ける。
docker run -d alpine yes
docker ps -a
b2e2c6f1246ddd105afe3cbb0dd98a6c05039ab0ad0369249baf9e66165c8269
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b2e2c6f1246d alpine "yes" Less than a second ago Up Less than a second mystifying_noether
docker stop {停止させたいコンテナのID}
docker ps -a
b2e2c6f1246d
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b2e2c6f1246d alpine "yes" 12 seconds ago Exited (137) 1 second ago mystifying_noether
停止したコンテナはdocker rm
で削除できる。
Deleted Containers:
b2e2c6f1246ddd105afe3cbb0dd98a6c05039ab0ad0369249baf9e66165c8269
Total reclaimed space: 0B
自分でイメージを作成するには
自分でイメージを作成するには、通常以下のような手順で行う。
イメージをビルドする専用のディレクトリを作成
その中にビルドに必要なファイルとDockerfile
を配置
docker build -t {イメージ名} {ビルド用ディレクトリ}
を実行
Dockerfile
はイメージをビルドする手順を書いたファイルで、 ここに書かれた手順をもとにイメージをビルドする。
例として、cowsay
というコマンドをインストールしたイメージを作成してみよう。 まずはcowsay
というディレクトリを作成し、その中に以下のように記述したDockerfile
を置く。
FROM ubuntu
RUN apt-get update && apt-get install -y cowsay
次にcowsay
ディレクトリに移動し、docker build
コマンドを実行する。
cd cowsay
docker build -t cowsay .
特に問題なくビルドできれば、cowsay
というイメージが作成され、 以下のようにコンテナを起動してcowsay
コマンドを使うことが出来る。
docker run cowsay /usr/games/cowsay "I am a red cow."
_________________
< I am a red cow. >
-----------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
キャッシュの削除
dockerを使用しているとそのうち使用が終わったデータでPCの容量が圧迫されることがある。 docker system df
で現在のデータの容量を確認することが出来る。
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 17 0 5.184GB 5.184GB (100%)
Containers 0 0 0B 0B
Local Volumes 5 0 0B 0B
Build Cache 180 0 105MB 105MB
使用していない余分なデータの削除は以下のようにして行う。
# 使用されていないコンテナの削除
docker container prune
# 使用されていないイメージの削除
docker image prune
# 使用していないボリュームの削除
docker volume prune
# ビルドキャッシュの削除
docker builder prune