docker学習(3)--Docfile詳細

3232 ワード

転載は出典を明記してください.http://www.cnblogs.com/lighten/p/6900556.html
1.基本的な説明
Docfileは、dockerミラー生成プロセスを作成するためのファイルで、特定の文法があります.一つのフォルダの中にDocfileという名前のファイルがあれば、その内容は文法的な要求を満たし、このフォルダのパスの下でコマンドを実行します.nameはミラーの名前です.(ミラーのバージョンかタグ番号です.書かないのはlastestです.後ろにスペースと点があります.
2.Docfile文法
Docerfileの基本的な命令は13個あります.それぞれFROM、MAINTAINER、RUN、CMD、EXPOSE、ENV、ADD、COPY、ENTRYPOINT、VOLUM、USER、WORKDIR、ONBUILDです.これらの命令の使い方を説明します.
2.1 FROM
使い方:FROM
説明:最初のコマンドはFROMでなければなりません.ミラー像を構築するための基本的なソースミラーを指定しています.ローカルにないと公共ライブラリから引き出されます.ミラーを指定していないタグはデフォルトのlatestタグを使用しています.複数回出現します.もし一つのDocerfileで複数のミラーを構築する必要があれば.
2.2 MAINTAINER
使い方:MAINTAINER
説明:ミラーの作成者、名前とメールボックスを説明します.
2.3 RUN
使い方:RUN「command」「param 1」「param 2」
説明:RUNコマンドは、一般的なコマンドであり、実行が完了すると新しいミラーになります.ここでは、ミラーの階層的な構築を意味します.一つのRUNは一つの層であり、一つのバージョンにも相当する.これは前に言ったキャッシュの原理です.私たちはdockerがミラー層で読み取り専用だと知っていますので、最初にソフトウェアをインストールしたら、後の文で削除するのは不可能です.このような場合は、RUN命令の文の中で完成します.&記号で複数のRUN文を接続することができます.RUNの後にはダブルクォーテーションが必要です.シングルクォーテーションマークは使えません.commandはshellを呼び出すことができませんので、該当変数は引き継がれません.入力RUN「sh」「-c」「echo」「USHOME」ではなく、RUN「echo」「HoME」を確認します.
2.4 CMD
使い方:CMD command param 1 param 2
説明:CMDはDocerfileの中で一回だけ現れます.複数あります.最後の一つだけ有効です.容器を起動する際にデフォルトのコマンドを提供する役割をします.ユーザーがdocker runを実行するときにコマンド項目を提供すると、このコマンドは上書きされます.提供していない場合は構築時の命令を使用します.
2.5 EXPOSE
使い方:EXPOSE[...]
説明:Dockerサーバ容器に外部にマッピングされるコンテナポート番号を教え、docker run-pの時に有効です.
2.6 ENV
使い方:EVNは一つしか設置できません.
       EVN=一度に複数の設定を許可する
説明:容器の環境変数を設定して、その後ろのRUNコマンドを使用してもいいです.容器が動いてもこの変数は残ります.
2.7 ADD
使い方:ADD 
説明:本機のファイルまたはディレクトリまたはリモートファイルをコピーし、指定されたコンテナディレクトリに追加し、GOの正則がぼやけて一致します.パスは絶対パスです.存在しないと自動的に作成されます.ソースがディレクトリであれば、ディレクトリの内容だけをコピーします.ディレクトリ自体はコピーされません.ADDコマンドは、コピーした圧縮フォルダを自動的に解凍します.これもCOPYコマンドと最大の違いです.
2.8 COPY
使い方:COPY
説明:COPYは自動的に解凍できない以外、ネットワークファイルもコピーできません.他の機能はADDと同じです.
2.9 ENTRY POINT
使い方:ENTRY POINT「command」「param 1」「param 2」
説明:このコマンドはCMDコマンドと同じです.唯一の違いは、docker runコマンドの実行コマンドに上書きされないことです.上書きするにはオプション--entrypointを付ける必要があります.複数のオプションがあれば、最後の一つだけ有効になります.
2.10 VOLUM
使い方:VOLUM[path]
説明:本体にマウントを作成し、容器への指定されたパスをマウントします.docker run-vコマンドもこの操作を完成することができます.さらに強力です.このコマンドはホストを指定できません.コンテナにマウントするフォルダパスが必要です.しかし、docker run-vは大丈夫です.データ容器をマウントすることもできます.
2.11 USER
使い方:USER daemen
説明:容器を実行する際のユーザ名またはUIDを指定し、後続のRUN、CMD、ENTRY POINTも指定されたユーザ実行コマンドを使用します.
2.12 WORKDIR
使い方:WORKDIRパス
説明:RUN、CMD、ENTRY POINT命令のために作業ディレクトリを設定します.複数のWORKDIRコマンドが使用されてもよく、後続のパラメータが相対パスであれば、前のコマンドに基づいて指定されたパスになります.WORKDIR /ホームWORKDIR test.最終的な経路は/home/testです.パスは環境変数HOME=/home、WORKDIR$HOME/test、つまり/home/testのような環境変数であっても良い.
2.13 OBUILD
使い方:ONBRILD[INSTRUCTION]
説明:現在作成されているミラーを他の新規ミラーのベースミラーとして設定する場合に実行される操作コマンドです.この鏡像を作成した後、他の鏡像がこの鏡像をもとにして、まずこの鏡像のONBUILD命令を実行するという意味です.
3.Docerfileの例
インストールパッケージを使用したtomcatの例:
FROM centos
MAINTAINER nobody "[email protected]"
RUN mkdir -p /opt/jdk/
RUN mkdir -p /opt/tomcat/
ADD jdk1.7.0_79	/opt/jdk/
ADD tomcat	/opt/tomcat/
ENV CATALINA_HOME /opt/tomcat
ENV JAVA_HOME /opt/jdk
EXPOSE 8080
ENV PATH $PATH:$JAVA_HOME/bin
CMD ["/opt/tomcat/bin/catalina.sh","run"]
 
転載先:https://www.cnblogs.com/lighten/p/6900556.html