Docker のエントリポイント フラグについて

Marion Paul Kenneth Mendoza 2023年6月20日
  1. エントリポイント命令を理解する
  2. Entrypoint フラグを使用して引数を渡す
  3. まとめ
Docker のエントリポイント フラグについて

docker run コマンドでエントリ ポイント (--entrypoint) フラグを使用して、Docker コンテナーの起動時に実行するコマンドを指定します。 このフラグを使用すると、コンテナーの動作をカスタマイズし、Docker が事前に実行するコマンドを決定できます。

この記事では、エントリ ポイント命令の概要について説明し、Docker が docker run コマンドを実行するときにそれを使用します。

エントリポイント命令を理解する

デフォルトでは、Docker コンテナのエントリ ポイントは、イメージのビルドに使用される Dockerfile の CMD 命令です。 CMD 命令は、コンテナーの起動時に Docker が実行するデフォルトのコマンドを指定します。

たとえば、次の Dockerfile では、イメージのデフォルトのエントリ ポイントを echo コマンドとして定義しています。

FROM ubuntu:18.04
CMD ["echo", "Hello, World!"]

docker build および docker run コマンドを使用して、イメージをビルドし、イメージに基づいてコンテナーを実行できます。

コード例:

docker build -t my-image .
docker run my-image

この例では、docker run コマンドは my-image イメージに基づいてコンテナーを開始し、コンテナーのエントリ ポイントとして echo コマンドを実行します。 上記のコマンドは、"Hello, World!" メッセージをコンソールに表示します。

ただし、コンテナに別のエントリ ポイントを指定する場合は、docker run コマンドを実行するときに --entrypoint オプションを使用できます。

コード例:

docker run --entrypoint /bin/sh my-image:latest

Entrypoint フラグを使用して引数を渡す

このコマンドでは、--entrypoint オプションは、コンテナのエントリ ポイントを /bin/sh コマンドとして指定します。 このコマンドは、Dockerfile で指定されたデフォルトのエントリ ポイントをオーバーライドします。

Dockerfile 内で定義された CMD の代わりに、Docker がコンテナーを開始するときに /bin/sh がコマンドを実行するようにします。

コンテナのエントリ ポイントを指定するだけでなく、エントリ ポイント フラグを使用してエントリ ポイント コマンドに引数を渡すこともできます。

コード例:

docker run --entrypoint /bin/sh my-image:latest -c

docker run --entrypoint コマンドは次の構文を使用します。

docker run --entrypoint <entrypoint.sh> <image:tag> <arg1> <arg2> <arg3>

まとめ

--entrypoint フラグを指定してコマンドを実行し、開始されたコンテナーでデフォルトのコマンド シェルを指定できるようにします。 Docker はこれを使用して、コンテナーの動作をカスタマイズし、最初の使用時に特定のコマンドまたはスクリプトを実行します。

このフラグは、コンテナが常に起動して特定のコマンドを実行することを確認したい本番環境でコンテナを実行する場合に便利です。

Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn