本来の目的は、Dockerのコンテナが起動したときに、サービスを自動起動するスクリプトを仕込みたいと思っています。今、実験で簡単なコマンドを起動するようにしてみているのですが、うまくいきません。
Dockerのコンテナを起動した時に、スクリプトが自動実行され、コンテナが終了してしまいます。起動し続けるDocker imageを作りたいのですが、どのようにすればよろしでしょうか。
■概要
Dockerのコンテナが起動した際、スクリプトを自動実行して起動し続けるようにしたいのですが、stopしてしまいます。
■環境
・macOS Sierra
・Docker Community Edition Version 17.0.3.1-ce-mac12(17661)
■設定・操作
・Dockerfileの記述
Dockerfile
1FROM ubuntu 2RUN mkdir /home/kwdr/dcvol -p 3ADD start.sh /home/kwdr/ 4ENTRYPOINT /bin/bash /home/kwdr/start.sh
・start.shの記述
start.sh
1date >> /home/kwdr/date.txt 2exit 0
・Dockerのbuildコマンド
$ docker build -t test .
・Dockerのrunコマンド
$ docker run -it --name test test
ここまで、何のエラーも表示されません。
Dockerのrunコマンドを実行したあとに、何も起きません。
その後、Dockerのstart、execを行うと次のようになります。
$ docker start test test $ docker exec -it test bash Error response from daemon: Container e2d4dfbb57bd563ba3231599d6300779a5897814ed2fa350a836814da8fd3c6b is not running
DockerfileのENTRYPOINTを外すと、正常にコンテナが起動します。
Dockerfile
1FROM ubuntu 2RUN mkdir /home/kwdr/dcvol -p 3ADD start.sh /home/kwdr/ 4#ENTRYPOINT /bin/bash /home/kwdr/start.sh
ちなみに、正常に起動したコンテナ(ENTRYPOINTを外したDockerfile)で、下記のコマンドは正常に実行されます。
# /bin/bash /home/kwdr/start.sh
回答1件
あなたの回答
tips
プレビュー