DockerfileのCMDとENTRYPOINTの違いとは?使い分けを理解して効率的に活用しよう

スポンサーリンク

概要

Dockerfileに記述できるCMDとENTRYPOITNTは、どちらも「コンテナ起動時に実行するコマンド」を記述するための命令である。
どちらもDockerfileに1つだけ記述することができる。

CMDとENTRYPOITNTの違いは「コンテナ起動時の引数やcompose.yamlで上書きできるかどうか」である。

  • CMD: compose.yamlなどで上書き可能
  • ENTRYPOITNT: compose.yamlなどで上書き不可

DockerfileでのCMD命令の記述例

FROM python:3.10
WORKDIR /usr/src/app
RUN pip install flask==2.3.3
CMD ["flask", "run", "--host=0.0.0.0"]

上記の場合、CMD命令が使われているので、flask run --host=0.0.0.0はcompose.yamで上書きされる可能性がある。

コメント