ここまでの解説でDockerの基本操作について解説してきました。今回はDockerの主要なコマンドまとめてみたいと思います。
イメージをDockerfileからビルドして作成するには、docker build
コマンドを使用します。
❯ docker build -t docker_demo2 .
取得したDockerイメージの一覧の表示はdocker images ls
コマンドを
# Dockerイメージの一覧表示
❯ docker images ls
REPOSITORY TAG IMAGE ID CREATED SIZE
new_docker_demo latest d0721bccc420 4 days ago 204MB
docker_demo2 latest 4b9be9995efd 5 days ago 135MB
itbook/docker_demo latest cd226ad8e4c1 6 days ago 204MB
docker_demo latest cd226ad8e4c1 6 days ago 204MB
ubuntu 16.04 c6a43cd4801e 3 weeks ago 123MB
# イメージIDのみを表示
❯ docker images ls -q
d0721bccc420
4b9be9995efd
cd226ad8e4c1
cd226ad8e4c1
c6a43cd4801e
# イメージIDをフル表示
❯ docker images ls --no-trunc
REPOSITORY TAG IMAGE ID CREATED SIZE
new_docker_demo latest sha256:d0721bccc420ea98a02dce757f8f11fb4ac7042aaa7c6da6fff540b50f906eab 4 days ago 204MB
docker_demo2 latest sha256:4b9be9995efd4baee3c4cc257456a8f0bb008232e12c167e9a2a18b2d2362d04 5 days ago 135MB
docker_demo latest sha256:cd226ad8e4c1acc72211376d9607edbdfe174acb203e7d485861f09720cf92df 6 days ago 204MB
itbook/docker_demo latest sha256:cd226ad8e4c1acc72211376d9607edbdfe174acb203e7d485861f09720cf92df 6 days ago 204MB
ubuntu 16.04 sha256:c6a43cd4801e1cf8832aa1dcda0df1f3730eea7e805be27b24cff32b007a919e 3 weeks ago 123MB
Dockerイメージを取得する場合は、docker image pull
コマンドを使用します。
# Centosイメージの取得
❯ docker image pull centos
Using default tag: latest
latest: Pulling from library/centos
8a29a15cefae: Pull complete
Digest: sha256:05c09d2d9769643a5b6a777ec7cb3f5343f3d5ebb83d0c3eff0fbeca7e693bd4
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest
Docke Hub上のイメージを検索するには、docker search
コマンドを使用します。
❯ docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 5772 [OK]
ansible/centos7-ansible Ansible on Centos7 126 [OK]
jdeathe/centos-ssh OpenSSH / Supervisor / EPEL/IUS/SCL Repos - … 114 [OK]
c
# --filterオプションを使用することで、絞り検索も可能です。
# 下の例は、Docker公式イメージのみで検索しています。
❯ docker search --filter "is-official=true" centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 5772 [OK]
Dockerイメージを削除する場合は、docker image rm
コマンドを使用します。
❯ docker image rmi centos
Untagged: centos:latest
Untagged: centos@sha256:05c09d2d9769643a5b6a777ec7cb3f5343f3d5ebb83d0c3eff0fbeca7e693bd4
Deleted: sha256:589dc4d40385ebd01340594e66c2ead3b193460efd6270f0e2dffd6db0e2f1c4
Deleted: sha256:0683de2821778aa9546bf3d3e6944df779daba1582631b7ea3517bb36f9e4007
イメージからコンテナを作成するには、docker container create
コマンドを使用します。
❯ docker container create --name test-nginx -p 80:80 f7bb5701a33c
2be5810fadd3ade22b92ce05eb437ac1754cf7df145cbbdc65c5705322cbae0b
Dockerコンテナを起動する場合は、docker container run
コマンドを使用します。
❯ docker container run -it ubuntu
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
2746a4a261c9: Pull complete
4c1d20cdee96: Pull complete
0d3160e1d0de: Pull complete
c8e37668deea: Pull complete
Digest: sha256:250cc6f3f3ffc5cdaa9d8f4946ac79821aafb4d3afc93928f0de9336eba21aa4
Status: Downloaded newer image for ubuntu:latest
docker run
コマンドの主要オプション一覧
オプション | 説明 | コマンド例 |
---|---|---|
--name | コンテナ名を指定 | docker run --name "demo" centos |
-d | バックグラウンドで実行 | docker run -d centos |
-t | コンテナの標準出力をホストの標準出力につなげる | docker run -t centos |
-i | ホストの入力をコンテナの標準出力につなげる | docker run -i centos |
-it | ホストとコンテナの標準入出力をつなげる | docker run -it centos |
-p [ホスト側のポート番号]:[コンテナのポート番号] | ポートフォワーディング | docker run -d -p 2023:23 sshd |
-v | dockerコンテナとホスト間でファイルを共有する | docker run -v ~/src:/var/www/html httpd |
--rm | コンテナ停止とともにコンテナ削除 | docker run --rm centos |
起動中のコンテナにログインするには、docker container exec
コマンドを使用します。
❯ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
32d60d924b16 d0721bccc420 "/usr/sbin/sshd -D" 31 minutes ago Up 53 seconds 22/tcp magical_austin
❯ docker container exec -it 32d60d924b16 /bin/bash
root@32d60d924b16:/#
root@32d60d924b16:/# exit
exit
コンテナへのログイン方法には、docker container attach
コマンドもありますが、このコマンドを使用した場合、exit
するとコンテナが停止してしまいますので、上記例のようにexec
コマンドでの接続がおすすめです。
コンテナの一覧表示には、docker container ls
コマンドを使用します。停止中のコンテナを含める場合は-a
オプションを付与します。
❯ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c4ba39743086 ubuntu "/bin/bash" 4 days ago Exited (0) 4 days ago jolly_poitras
eea78050437d new_docker_demo "/usr/sbin/sshd -D" 9 days ago Exited (0) 9 days ago new_docker_demo
9f09c3bb3a93 docker_demo "/usr/sbin/sshd -D" 9 days ago Exited (0) 9 days ago docker_demo
停止中のコンテナを削除するには、docker container rm
コマンドを使用します。
❯ docker container rm docker_demo
docker_demo
docker container prune
コマンドを使用すると、停止中の全コンテナを削除します。
❯ docker container prune
❯ docker container prune WARNING! This will remove all stopped containers. Are you sure you want to continue? [y/N] y Deleted Containers: c4ba397430863db5d16a086c6eb63d95aefeedb7cde0e818e1f22cb2311fe0d0 eea78050437d41479a9a30d1adc9ba8d0553384df2f6b8727ad258e31a1689cb
Total reclaimed space: 33.14kB
## Dockerコンテナから新しいイメージを作成
コンテナから新しいイメージを作成するには、````docker container commit````コマンドを使用します。
❯ docker commit docker_demo new_docker_demo sha256:bec3404d505e671e14e31768e9b198ee979b5ca6aa9970897454e4eb5c2a9a3c