Open3
docker再入門
CMD
👇の気になった点をまとめる
3つの書き方がある
-
CMD ["executable","param1","param2"]
(exec form, 推奨)- exec formはjson arrayとして処理されるのでダブルクォート
"
を使う必要がある - exec formはshellとして実行されない = shellで読み込む環境変数は使えない
- exec formでshellを実行したい場合
CMD [ "sh", "-c", "echo $HOME" ]
のように明示的にshellを実行すること
- exec formでshellを実行したい場合
- exec formはjson arrayとして処理されるのでダブルクォート
-
CMD ["param1","param2"]
(as default parameters to ENTRYPOINT) -
CMD command param1 param2
(shell form)
1つのDockerfileにCMD
は1つのみ記述する。もし複数回記述した場合最後のものが処理される。
WORKDIR
👇の気になった点をまとめる
- Dockerfile内の
RUN
,CMD
,ENTRYPOINT
,COPY
andADD
などのコマンドが参照するディレクトリを定める- 記述がなくともworkdir自体は設定される
- デフォルトでは
/
で設定される
- デフォルトでは
- 記述がなくともworkdir自体は設定される
-
WORKDIR
インストラクション内ではDockerfile内で明示的に設定されている環境変数のみ参照できる
debug
作ったものの立ち上がらないdocker containerをデバッグするとき
$ docker commit { コンテナID } { コンテナ名を適当に付ける }
$ docker run --rm -it { 適当につけたコンテナ名 } /bin/sh