Dockerのチュートリアル

トップ > Docker > チュートリアル

イメージを管理する

Shell
DockerHub からイメージを検索する
# docker search centos

イメージをダウンロードする
# docker pull centos:7

ダウンロード済みのイメージ一覧を表示する
# docker images

イメージを削除する
# docker rmi centos:7

コンテナを管理する

Shell
コンテナを起動する
# docker run -d -it --name cont1 centos:7

コンテナの一覧を表示する (-a は停止中もすべて)
# docker ps -a

コンテナを開始・停止・再起動・削除・リネームする
# docker start cont1
# docker stop cont1
# docker restart cont1
# docker rm cont1
# docker rename cont1 cont2

コンテナ起動(run)時には下記などのオプションを指定することができます。

オプション説明
-dコンテナのメインプロセスを端末からデタッチします。
-iコンテナの標準入力を開いたままにします。
-t端末を割り当てたままにします。
--name 名前コンテナ名を指定します。
-p hPort:cPortホストOSのポート番号(hPort)を、コンテナ内のポート番号(cPort)にバインドします。(例: -p 8080:80)
-v hVolume:cVolumeホストのボリューム(hVolume)を、コンテナ内のボリューム(cVolume)にバインドします。(例: -v /var/cont1/app:/opt/app)
--rmコンテナのメインプロセス終了時にコンテナを自動的に削除します。

コンテナに接続する

centos イメージなど、起動時に -it オプションをつけ、メインプロセスが /bin/bash 等であるコンテナに対しては、メインプロセスに直接アタッチすることができます。この場合、exit や Ctrl-D 等でぬけると、メインプロセス(=コンテナ)自体が終了してしまします。

Shell
コンテナのメインプロセスにアタッチする
# docker attach cont1
[root@db80ea8860ff /]# Ctrl-P Ctrl-Q   デタッチするには Ctrl-P Ctrl-Q を押す

httpd イメージなど、メインプロセスが httpd 等のコンテナの場合、メインプロセスとは別に、もう一つ別の /bin/bash 等を起動して、それにアタッチすることも可能です。この場合、exit や Ctrl-D で抜けても /bin/bash が終了するのみで、メインプロセス(=コンテナ)は終了しません。

Shell
コンテナにもうひとつ別の /bin/bash を起動して接続する
# docker exec -it cont1 /bin/bash
[root@db80ea8860ff /]# exit

ホストのディレクトリをマウントする

Shell
SELinuxを無効化する
# vi /etc/selinux/config
SELINUX=disabled

# setenforce 0

-vオプションでホストの /mnt/cont1 をコンテナの /mnt にマウントする
# docker run -d -it --name cont1 -v /mnt/cont1:/mnt centos:centos6

ホストの8080ポートをコンテナの80にマッピングする

Shell
# docker run -d -it --name cont1 -p 8080:80 centos:centos6

Copyright (C) 2016-2019 杜甫々
初版:2016年6月4日 最終更新:2019年9月1日
http://www.tohoho-web.com/docker/tutorial.html