GNU/Linux >> Linux の 問題 >  >> Ubuntu

DockerRunを使用してエントリポイントをオーバーライドする方法

はじめに

エントリポイント およびCMD Dockerイメージのプロセスを定義するDockerfileの命令です。コンテナの実行方法に応じて、一方を使用することも、両方を組み合わせることもできます。

1つの違いは、 CMDとは異なります。 ENTRYPOINTを上書きすることはできません 新しいコマンドラインパラメータを追加するだけでコマンドを実行できます。 ENTRYPOINTをオーバーライドするには、 docker runを変更する必要があります 特定の構文に従ったコマンド。

このチュートリアルでは、dockerrunコマンドを使用してENTRYPOINTをオーバーライドする方法を学習します。

前提条件

  • コマンドラインへのアクセス
  • sudoを持つユーザー 特権
  • 実行中のDockerインスタンス
  • 既存のDockerイメージ

Dockerの実行でENTRYPOINTをオーバーライドする

このコマンドをオーバーライドする方法を説明するために、メッセージ Hello Worldをエコーするコンテナーを実行します。 DockerfileでENTRYPOINTとCMDを組み合わせます。

Dockerfileで、 ENTRYPOINT コマンドは実行可能ファイルを定義し、 CMD デフォルトのパラメータを設定します。

FROM ubuntu
MAINTAINER sofija
RUN apt-get update
ENTRYPOINT [“echo”, “Hello”]
CMD [“World”]

このファイルからイメージを作成し、それを使用してDockerコンテナーを実行すると、出力は次のように表示されます。

docker runに目的のパラメーターを追加することで、デフォルトのCMDを簡単にオーバーライドできます。 コマンド:

sudo docker run [container_name] [new_parameter]

以下の例では、CMDパラメータ Worldを変更しました Sofijaを追加する コマンドに。その結果、出力には Hello Sofijaが表示されます。

ただし、デフォルトの実行可能ファイルをオーバーライドして、たとえば、コンテナー内でシェルを実行したい場合があります。その場合は、 --entrypointを使用する必要があります 次の構文を使用して、コンテナにフラグを付けて実行します。

sudo docker run --entrypoint [new_command] [docker_image] [optional:value]

この例のデフォルトのエコーメッセージをオーバーライドしてコンテナをインタラクティブに実行するには、次のコマンドを使用します。

sudo docker run -it --entrypoint /bin/bash [docker_image]

出力は、コンテナ内にいることを示しています。


Ubuntu
  1. 専用GPUでGlmark2を実行する方法は?

  2. スクリプトを実行する方法??

  3. 実行中のDockerコンテナでコマンドを実行する方法

  1. Dockerを使用してWordPressをインストールする方法

  2. Dockerコンテナ内でプログラムを実行する方法は?

  3. CentOSにDockerをインストールする方法

  1. DockerでRedisをデプロイして実行する方法

  2. Ubuntu 20.04にDockerをインストールする方法(簡単なガイド)

  3. DockerコンテナでMySQLを実行する方法