docker コンテナ起動時のシェル実行について

個人的な事でdockerを使用してコンテナ起動時に、コンテナ内のシェルを実行させようとした時にはまったのでメモ。

まず、下記のようなDockerfileを用意。

ADDでtest.shを/tmpフォルダに配置して、実行権限を付与。
CMDでコンテナ起動時にtest.shを実行。

これでコンテナ起動時にtest.shが実行されるはずだが、実行されなかった。
色々調べた結果、runコマンドでコンテナを実行する際に、コマンドを指定していたのが原因だった…

runコマンド実行時にコマンドを指定するとDockerfileの中で指定した、CMDは上書きされる為に/bin/bashのみが実行されていたのが原因。

/bin/bashを省いてコンテナを起動すると、ちゃんとシェルが実行された。

結構時間をとってしまった。dockerをもっと勉強しないと…

参考URL
http://www.ajisaba.net/