あるSEのつぶやき・改

ITやシステム開発などの技術に関する話題を、取り上げたりしています。

解決: Docker for WindowsでCentOS7が起動しない

Docker for Windows で、CentOS7を起動しようとしてハマったのでメモを残しておきます。

まず、通常通り Docker で CentOS7 を実行します。

>docker run -d --name myapp centos
0778a6f53268e2b5024dcfdd5eefc702b4f9890a3d0e6e4b093a9ec259a79b87

しかし、docker ps -a を実行してみると、STATUS が Exit(0) となりコンテナが起動していません。当然ログインもできません。

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
0778a6f53268        centos              "/bin/bash"         2 minutes ago       Exited (0) 2 minutes ago                       myapp

Ubuntu ベースのイメージは起動できたりするのでいろいろ悩んだのですが、以下の記事のおかげで原因が分かりました。

qiita.com

どうも、CentOS7 の Docker イメージを起動するには、systemctl を使用できるようにするために、/sbin/initをコマンドの最後につけてあげる必要がある模様。

なので、今度は以下のようにコマンドを実行してみます。

>docker run -d --name myapp2 centos /sbin/init
83cf54143d2b160a96d2163b983f3c4bd96b7dfe530a9dc2bc46524f66b36628

docker ps -aの結果は以下の通りです。

>docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                     PORTS               NAMES
83cf54143d2b        centos              "/sbin/init"        About a minute ago   Up About a minute                              myapp2
0778a6f53268        centos              "/bin/bash"         8 minutes ago        Exited (0) 8 minutes ago                       myapp

myapp2 の STATUS が UP になってますね!

無事に起動しました。

これでログインできますね。

>docker exec -it myapp2 /bin/bash
[root@83cf54143d2b /]#