Dockerfileパラメータはじめに

 

ます。https://docs.docker.com/engine/reference/builder/ Dockerfile説明パラメータ

指令の意味を説明します

FROM:DebianのFROM:ストレッチ表さDebianのベースイメージビルドとしてストレッチ

MAINTAINER:管理者情報
RUN:RUN行でこれらのスクリプトの実行&&によって接続されたいくつかのシェルコマンドは、そうすることがミラーの層の数を減らすことであるという事実の理由で見ることができ、各追加の線がミラーRUNを与えます追加の層は、ので、ここで層数を削減するために一緒にリンクされているすべてのコマンドを実行することを選択した
ARG:特にRUNコマンドの後半で説明します、いくつかのマクロ定義をすることができ、このコマンド、例えば、私は後に、ENV JAVA_HOME =は/ opt / JDKを定義しますRUNコマンド$ {JAVA_HOME}の後ろのシェルは、/ opt / JDKに置き換えられます
ENV:この効果は、命令がシェルでいくつかの環境変数(実際に輸出)を設定していることが分かる
... AS ... FROM:これはドッカー17.05で、個々の名前から上記の手順のうち、実際には、画像のこの段階に新しいバージョン:FROM ...(基础镜像) AS ...(别名)その背後にある鏡のこの段階を参照するときに直接エイリアスを使用して

COPY :.、名前が意味する(現在のフォルダ、フォルダすなわちDockerfileを表す)がCOPY /ルート/ワークスペース/エージェント、前後にファイルをコピーするために使用されるファイルは、コンテナ/ルート/ワークスペース/にコピーされるように、現在のフォルダを示しますエージェントフォルダ。--fromパラメータはまた、--from =ビルダー比は、ファイルがローカル・ファイル・システムの源ではないことを示すが、ビルダーエイリアスコンテナ前として、ミラー・コピー・ファイルが前段から来るかもしれません

WORKDIR:行うRUN第1の後側シェルコマンドの前であろうcdWORKDIR、カタログの背面

ENTRYPOINT:このパラメータは、ミラーパッケージが完了した後、「[、またはによって実際にこのENTRYPOINT実行可能ファイル(通常はシェルスクリプトファイル)の後ろに実行されたドッキングウィンドウrunコマンドを使用してイメージをすることができます実行し、「ポータル」の画像を表し、作業ディレクトリの実装の入り口」WORKDIRの背後にあるディレクトリである 『これは、実行可能ファイルの実行パラメータへの道を与え、]』ファイル「」パラメータ1 『と』パラメータ2を実行

 

各コマンドは、詳細な

から

ベース画像の鏡像の新たな種類として指定され、例えば:

UbuntuのFROM:14.04

MAINTAINER

著者は、次のようなミラーとその電子メールを、示しています:

MAINTAINER vector4wang " [email protected] "

RUN

そのようないくつかのソフトウェアをインストールするようにミラー内に新しいコマンド実行では、いくつかの基本的な構成環境をラップするために、\を使用することができ、例えば:

RUNは、エコーこんにちはドッカ!" \
     > /usr/local/file.txt

 

フォーマットは、execを使用することができるRUN ["executable", "param1", "param2"]ようなコマンドを、:

RUN [ " apt-getを"" インストール"" -y "" nginxの" ]

なお、executableパラメータparamが続き、コマンド

COPY

鏡の中のホストへファイルをコピーし、宛先が存在しない場合は、動作しませんドッカーは、自動的にすべての必要なディレクトリ構造を作成しますが、それは単純なコピーだとファイルを抽出し、解凍します。以下のような:

COPY application.ymlの/ etc / springboot /ハロー・サービス/ SRC /リソース

 

注:次のDockerfile同じディレクトリ内のファイル上に存在する必要がありますディレクトリをコピーする必要がある
理由:

ビルド環境がドッカーデーモンにアップロードされ、コピーがドッカーデーモンで行われているため。任意の建物に位置し、外部環境のものは使用できません。物体の位置のコピー指示は、容器内の絶対パスでなければなりません。
---「ドッキングウィンドウBOOK」

ADD

COPYのように、制限条件と使用パターンが同じで、ミラーにホストのファイルをコピーし、のような:

application.ymlの/ etc / springboot /ハロー・サービス/ SRC /リソースを追加

 

しかし、圧縮ファイル(タール、GZIP、BZIP2、など)を抽出し、解凍操作を行うを追加します。

EXPOSE

ランダムポートミラーリングの-Pパラメータの点で、ホストポートマッピングやって、ブートイメージ、用露光画像は、ポートマッピングをホスト行います。(Sを指定する)を使用します

EXPOSE 8080を 
EXPOSE 8081を
...

 

WORKDIR

イメージを構築する場合のコマンドは、この作業ディレクトリに基づいてされた後に、存在しない場合は、ディレクトリを作成し、ミラーリングの作業ディレクトリを指定します。として

WORKDIRは、/ usr / ローカル
WORKDIRのWebサービス
RUNのエコー ' こんにちはドッキングウィンドウ' > TEXT.TXT 
...

 

最終的にはなります/usr/local/webservice/、ディレクトリTEXT.TXT内のファイルを生成します

ONBUILD

コマンドは、(例えば、ソースコードに追加する準備ができてミラー位置に対するユーザのニーズとして、又はユーザは、ビルド環境から特定の画像ビルドスクリプトを実行する必要がある)、他のミラーのONBUILDベースイメージを含むようにミラーを用いた場合、コマンドそれが実行されます。
鏡像-Aを作成します

UbuntuのFROM 
... 
ONBUILD ADD。/ var / WWWの
...

 

画像-Aのようなベース画像を、指定のように、鏡画像Bを作成します

イメージ- FROM 
...

 

そして、画像-B構築、ログに表示されるが、以下:

ステップ0:イメージ- FROM 
Execting#1 ビルドがトリガー
ステップonbuild - 0:ADD。/ var / WWWの
...

 

ユーザー

:など、ユーザーが実行する画像の種類を指定

USERのモンゴ

 

ボリューム

画像作成のためのボリュームベースのコンテナを追加します。たとえば、ホストを指定するには、データファイルに格納されているMongoDBの画像データを提出することができます。(容器の内部は、任意のデータを格納するために推奨されていない)
など。

VOLUME /データ/ DB /データ/てConfigDB

 

注意:VOLUME 主机目录 容器目录

CMD

:次のような、実行するコマンドの容器を起動すると

CMD / binに/ bashの

 

また、次のような、execの構文を使用することができます

CMD [ " / binに/ bashの" ]

 

複数のCMDがある場合、最後のものだけが動作します。

エントリーポイント

まったく同じ役割と使用方法とCMD

CMDとENTRYPOINTの違い

黒板をノック!非常に重要な
私たちが注意を払う必要があります!

我々は注意を払う必要があります!

我々は注意を払う必要があります!
コンテナは、以下の点の間の差を起動したときに実行するコマンドと同じCMDとENTRYPOINT:

  • CMDコマンドはENTRYPOINTドッキングウィンドウは、コマンドを実行していない上書きされます

使用CMD ["/bin/bash"]又はENTRYPOINT ["/bin/bash"]再使用後にdocker run -ti image容器を開始するには、それが自動的に使用されるように、容器対話型端末の内部に入ります
docker run -ti image /bin/bash

ミラーコマンドが起動した場合でもdocker run -ti image /bin/ps、実行代わりによってカバーされるCMDコマンドの背中を使用bin/psコマンドを、そしてENTRYPOINTはありませんが、パラメータENTRYPOINTとしてコマンドを実行するために、実行コマンドの後ろにドッキングウィンドウます
次の例で理解しやすく
するためにDockerfileを

... 
ENTRYPOINT [ " /ユーザー/ sbinに/ nginxの" ]

 

そして、後のビルドコンテナを開始することにより、

ドッキングウィンドウの実行-ti画像-g オフデーモン

 

この時点で、-g "daemon off"最終的には、コマンドになって、ENTRYPOINTにパラメータとして渡されます

/ユーザー/ sbinに/ nginxの-g " オフデーモン"

 

  • CMDとENTRYPOINTが存在するとき

ときにそこENTRYPOINTとCMD、CMDコマンドENTRYPOINTへのパラメータ、およびこのパラメータはCMDは、カバードッキングウィンドウrunコマンドの後ろに設けられており、例えば:

... 
ENTRYPOINT [ " エコー"" こんにちは"" 私は" ] 
CMD [ " ドッキングウィンドウ" ]

 

後のコンテナの建設を開始した後、

  • 使用docker run -ti image

    出力「こんにちは私は、ドッキングウィンドウです」

  • 使用docker run -ti image world

    出力「こんにちは私は世界です」

コマンドの詳細は、(例えば始まるテーブルなど)のメモリの分類方法で行くことができます

ご自身は、非常に単純な簡単な例を書きました

UbuntuのFROM 
MAINTAINER vector4wang [email protected] 

WORKDIRは/ usr / local / ドッキングウィンドウの
ADDの一時。ジップ ./add/ 
COPYの一時を。ジッパーは ./copy/ 
EXPOSE 22 
RUNをgroupaddの -r vector4wang && useraddの-r - G vector4wang vector4wang 
ユーザーvector4wang 

ENTRYPOINT [ " / binに/ bashの" ]

 

ここでは、実行中のプロセスであり、

1.png

 
2.png

(ダイナミックマップは、アップロードするには大きすぎることはできません)

ファイルにコピーし、後の注意ユーザー名とログインを追加

追伸

これらは、ちょうどあなた自身のデモを書き込み、実際の戦闘の過程でいくつかの実用的な問題は、追加の部屋に遭遇した後、まとめブログを見て、他の人が閲覧しています。


リンクします。https://www.jianshu.com/p/10ed530766af

 

 

おすすめ

転載: www.cnblogs.com/ling-yu-amen/p/10955361.html