LoginSignup
15
17

More than 1 year has passed since last update.

Docker | 既存イメージの CMD を確認する ( $ docker inspect )

Last updated at Posted at 2017-05-24

問題

Dockerfile でいうところの CMDで何が走るかを、既存のイメージで確認したい。

Dockerfile
CMD ["/bin/sh"]

解決

docker inspect で可能。

$ docker inspect [イメージ名] --format='{{.Config.Cmd}}'

例:

$ docker inspect alpine --format='{{.Config.Cmd}}'
[/bin/sh]

このコマンドが面倒だったら grep しても良い。

$ docker inspect alpine | grep CMD
"CMD [\"/bin/sh\"]"

色んなイメージの CMD を見てみる

alpine

bashさえ入っていない。shが起動する。

$ docker inspect alpine --format='{{.Config.Cmd}}'
[sh]

ubuntu

bashが起動する。

$ docker inspect ubuntu --format='{{.Config.Cmd}}'
[/bin/bash]

rails

pry が起動する。

$ docker inspect rails --format='{{.Config.Cmd}}'
[irb]

python

python が起動する。

$ docker inspect python --format='{{.Config.Cmd}}'
[python3]

インタラクティブモード

それぞれインタラクティブモードで実行すると、CMDで指定されたものが起動するのが分かる。

sh

$ docker run -it alpine
/ #

bash

$ docker run -it ubuntu

root@41490d5a88ce:/#

pry

$ docker run -it rails

irb(main):001:0> 

python

$ docker run -it python

Python 3.6.1 (default, May 11 2017, 22:14:44)
[GCC 4.9.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

CMD の書き換え

よく例で出て来る $ docker run -it [イメージ名] /bin/bash という書き方は、CMDを書き換えて実行することが出来る。

alpine

そもそも /bin/bash さえ入ってないので怒られる。

$ docker run -it alpine /bin/bash
docker: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "exec: \"/bin/bash\": stat /bin/bash: no such file or directory".

ubuntu

もともと /bin/bash なので動作変わらず。

$ docker run -it ubuntu /bin/bash
root@3ff997da5e74:/#

rails

pry ではなくbashで接続するようになった。

$ docker run -it rails /bin/bash
root@e0494a68300d:/#

python

python ではなくbashで接続するようになった。

$ docker run -it python /bin/bash
root@6892c2322999:/#

参考

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

Twitter

15
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
17