「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 /]#



今回はこんなところです。以上です。

[環境情報]
Windows Subsystem for LinuxUbuntu 18.04.1 LTS)