キーワードdockerfile
キーワード | 効果 | リマーク |
---|---|---|
から | ベースイメージを指定します。 | aliasNameは通りタグ:タグまたはレジストリ/名前空間/プロジェクト:そのイメージ構築、レジストリ全体/名前空間/プロジェクトを書き込むように提案したフォーマットに基づいてdockerfile指定 |
MAINTAINER | 著者の情報 | これはdockerfileを書いた人を示すために使用されます |
ラベル | タグ | タグは、ラベルdockerfile識別するために使用することができるドッキングウィンドウの画像は、基本的な情報で表示することができ、最終的に代わりにメンテナの使用 |
RUN | コマンドを実行します。 | デフォルトでは、コマンド/ binに/ shの形式の実装です:RUNコマンドまたはRUN [「コマンド」、「PARAM1」、「PARAM2」] |
CMD | コマンドの容器を開始 | 場合コマンドと一緒に使用されるデフォルトのフォーマットとENTRYPOINT CMDコマンドPARAM1 PARAM2またはCMD [「コマンド」、「PARAM1」、「PARAM2」出発容器を提供すること |
エントリーポイント | エントランス | 一般的には密閉容器にいくつかの実行は、次のCMD活用で使用される生成することは、特にこの事を言うだろう |
COPY | ファイルのコピー | イメージビルド時間のワイルドカードにファイルをコピーし、長いそれは、標準出力ストリームから構成されている場合filepath.Match規則の複合がトリップコピー元のターゲットに行くように、このキーワードを使用することはできませんとして使用することができます |
追加 | ファイルを追加します | イメージファイルに追加する時間のビルドは、リモートサービスADDソース・ターゲット・ノートから構築することができ、現在のコンテキストに限定されるものではない:内部文書が自動的に可能ように/江の対象とされていない場合推察のようにフォルダを対象とするターゲットバンド名/場合ファイル |
ENV | 環境変数 | ビルド時間は起動コンテナ名=値で環境変数ENV形式-eカバーで指定されました... |
ARG | ビルドパラメータ | 常に上書き引数の同じ名前ENV ENVの値がある場合のパラメータは、ビルドに使用される唯一のビルドパラメータ |
ボリューム | これは、定義されたデータボリュームの外側に取り付けることができます | これらのディレクトリを構築することができますマウントイメージがコンテナフォーマットのボリュームを結合-vを使用してファイルシステムのブート時に開始時間を指定し、[「ディレクトリ」] |
EXPOSE | 露出したポート | リスニングポートのコンテナを使用する場合はフォーマット公開するカスタム・コンテナ・ポート・バインディングを実行するために開始し-p:あなたはTCPまたはUDPを聞いていない場合は8080を公開するか、8080 / UDPを公開し、デフォルトはTCPです |
WORKDIR | 作業ディレクトリ | コンテナ内の指定/相対パスを使用して絶対アドレスならば、それはそうWORKDIRのパスの先頭に/でない場合は作成されていない場合は作業ディレクトリが自動的に作成され、指定 |
ユーザー | ユーザーが実行を指定します | 指定ビルドまたはユーザーRUN CMD ENTRYPONTは、実行時にユーザのスタートアップ |
健康診断 | ヘルスチェック | 指定されたモニターに非常に多くの場合、アプリケーション自体が健康監視機構を備えているので、基本的には役に立たない現在のコンテナコマンドのヘルスモニタリング |
ONBUILD | トリガー | ONBUILD FROM実装完了後のベースイメージがコマンドを実行しますが、カレントミラーの有用性には影響を与えない場合など、ミラーONBUILDキーワードがありませんどのように大きなされている場合 |
ストップライト | ホストへの送信信号の量 | STOPSIGNAL設定命令は、システムコール信号を終了するために容器に送られます。この信号は、有効な符号なしの実施例9の番号、または信号名SIGNAMEフォーマット、例えばSIGKILLと一致する位置にカーネル・システム・コール・テーブルであってもよいです。これは理解してセマフォを相互作用することにより、ホストをやっているように見えるされていません |
シェル | スクリプトシェルの実行を指定します。 | RUN CMD ENTRYPOINTは、SH bashのzshのPowerShellの形式SHELL zshのようにシェルを使用するときにコマンドを実行するように指定さ |
ルーチンに注意を払う必要があります
ビルド環境を選択
Linuxカーネルのバージョンが3.10よりも高くする必要があり
、Windowsのピットの父のビルドに問題が生じやすいことはできません。
CMDとENTRYPOINT差問い合わせ
联系:
当存在ENTRYPOINT的时候 CMD成为了参数 ENTRYPOINT = ENTRYPOINT <CMD>
区别:
CMD 就是单纯的执行一段shell 当要为 CMD添加参数的时候 只能选择全部覆盖CMD命令
如果是ENTRYPOINT 那么可以直接在启动容器最后添加 参数 因为当入口是ENTRYPOINT的时候CMD就成为了ENTRYPOINT的参数
ADD 和COPY的区别联系
联系:都是把文件添加到容器的image中
区别:
COPY 只能读取当前构建的上下文 如果是从标准输出流构建 COPY无法使用
ADD 可以使用远程服务的文件目录
VOLUME挂载目录需要注意的
1: 如果宿主机是windows 不能挂载空目录、和c盘的目录
2: 在VOLUME之后的构建操作 都无法生效 要求 暴露挂载卷 必须在最后一步 声明
构建镜像的注意点
1: 尽量选择 微缩基础镜像 例如alpine 减少镜像的体积
2: 尽量不要打包无用的文件到镜像中 减少镜像的体积
3: 尽量删除 各种编译、下载、安装过程中产生的缓存文件 减少镜像体积
4: 尽量使用分阶段构建镜像 一步步的扩展镜像功能 避免多层数镜像的产生
5: 准确使用dockerfile的关键字 例如CMD 和ENTRYPOINT 、 COPY 和ADD
docker build -f dockerfile文件路径 -t 镜像名称:版本 镜像生成路径