ざっくりDocker その2
ざっくりDockerめも
Dockerfile作成
$ vi Dockerfile #ベースイメージ FROM centos #apacheインストール RUN yum install -y httpd #docker run時にapache実行 CMD /usr/sbin/httpd -D FOREGROUND
ビルド
(例) Dockerfileからdocker-imageを作成。-t でイメージ名を指定
$ docker build -t hoge1 . $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE hoge1 latest 5c42c196a681 29 minutes ago 333MB
docker run
-dでバックグラウンド起動。-pでクライアント8080ポートをapache80ポートへ転送
$ docker run -d -p 8080:80 hoge1
起動中のコンテナの確認
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e07d598d531a hoge1 "/bin/sh -c '/usr/sb…" 4 seconds ago Up 3 seconds 0.0.0.0:8080->80/tcp friendly_jepsen
すべてのコンテナを確認
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e07d598d531a hoge1 "/bin/sh -c '/usr/sb…" 22 seconds ago Up 21 seconds 0.0.0.0:8080->80/tcp friendly_jepsen 1abb9c342d12 hoge1 "/bin/sh -c '/usr/sb…" 40 minutes ago Exited (137) 39 minutes ago infallible_liskov 544715b84d6b hoge1 "/bin/sh -c '/usr/sb…" 44 minutes ago Exited (137) 43 minutes ago nostalgic_mirzakhani 85112e3c0a84 75835a67d134 "/bin/sh -c 'yum ins…" About an hour ago Exited (1) About an hour ago dreamy_wright
コンテナの停止
$ docker stop e07d598d531a or $ docker kill e07d598d531a $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
停止したコンテナを再起動
$ docker start e07d598d531a $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e07d598d531a hoge1 "/bin/sh -c '/usr/sb…" 23 hours ago Up 5 seconds 0.0.0.0:8080->80/tcp friendly_jepsen
コンテナ削除
起動中のコンテナを削除する場合はエラーとなる。オプションfで強制削除可能。
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e07d598d531a hoge1 "/bin/sh -c '/usr/sb…" 24 hours ago Up 6 minutes 0.0.0.0:8080->80/tcp friendly_jepsen $ docker rm e07d598d531a Error response from daemon: You cannot remove a running container e07d598d531a5c63c795ff9ed3bc3dac4bb9dd7d1d67afd497edb004252ae409. Stop the container before attempting removal or force remove $ docker rm -f e07d598d531a e07d598d531a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES