「Docker」CentOSイメージからコンテナを起動してみる
前回 Docker のインストールから hello-world イメージを実行するところまでやったので、 今回は CentOS7 のイメージ動作させるあたりをやってみたいと思います。
イメージのインストール、起動
ローカルにイメージが存在しない場合、勝手に pull してきてくれるので、いきなり docker run で 実行してみます。
# docker run --name centos7_test centos:centos7 Unable to find image 'centos:centos7' locally centos7: Pulling from library/centos aeb7866da422: Pull complete Digest: sha256:67dad89757a55bfdfabec8abd0e22f8c7c12a1856514726470228063ed86593b Status: Downloaded newer image for centos:centos7
イメージからコンテナが起動できました。 docker image ls で見るとちゃんとイメージもダウンロードできてます。
# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b1f7230c1e26 centos:centos7 "/bin/bash" 30 seconds ago Exited (0) 23 seconds ago centos7_test # docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE centos centos7 75835a67d134 2 weeks ago 200MB
ちなみに centos:centos7 の : 以降の部分なタグといってイメージのバージョンを指定するものです。今回は CentOS7 を利用したので上記のような指定にしています。
インタラクティブモードでコンテナを起動する
docker ps -a の STATUS の出力からわかるように普通に docker run でコンテナを起動しただけだと、起動後すぐに終了しちゃいます。起動したコンテナ内でごにょごにょするためには、-it オプションを指定してインタラクティブモードでコンテナを起動すればよいです。
# docker run -it --name centos7_test_it centos:centos7 [root@edf7110b7792 /]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core)
exit でコンテナから抜けられます。
# # docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES edf7110b7792 centos:centos7 "/bin/bash" About a minute ago Exited (0) 7 seconds ago centos7_test_it
「root@edf7110b7792」 root@ の後ろはコンテナIDになっているみたいですね。
コンテナを起動させてまま抜ける、抜けたコンテナに再び入る
exit で抜けると docker ps -a の STATUS の出力の通りコンテナが停止してしまうので、コンテナを起動させたままけるには、コンテナ内で 「Ctrl+p、Ctrl+q」 するとできるみたいです。 STATUS が Exited ではなく Up となっていて起動したままになってることが確認できます。
# docker run -it centos:centos7 [root@bd8f91a793cd /]# ★「Ctrl+p、Ctrl+q」 # docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES bd8f91a793cd centos:centos9 "/bin/bash" 8 minutes ago Up 8 minutes admiring_albattani
起動したまま抜けたコンテナには docker attach コンテナID でアタッチすることができます。
# docker attach bd8f91a793cd [root@bd8f91a793cd /]#
今回はこんなところです。以上です。