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 specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn