使用するDockerFileシンプル

Dockerfileドッカーイメージがビルドファイルを構築するために使用され、スクリプトがコマンドと設定パラメータのシリーズです。

例えばCentOSのに(https://hub.docker.com/_/centos):

FROM 7:CentOSの
 ENVのコンテナのドッキングウィンドウの
 RUN ; I中のため*;やる[$ I == \(CDの/lib/systemd/system/sysinit.target.wants/ 
にsystemd-TMPFILES-setup.service] || RM -f $やりました); \ 
RM -f /lib/systemd/system/multi-user.target.wants / * ; \ 
RM -fは/ etc / systemdに/システム/ *望んでいる/ *; \ 
RM -f / libに/にsystemd /システム/ローカル-fs.target.wants / *; \ 
RM -f /lib/systemd/system/sockets.target.wants/*udev*。\ 
RM -f /lib/systemd/system/sockets.target.wants/*initctl*。\ 
RM -f /lib/systemd/system/basic.target.wants / *; \ 
RM -f /lib/systemd/system/anaconda.target.wants/*。
ボリューム[ "/ SYS / FS / cgroup内"] 
CMD [ "は/ usr / sbinに/ INIT"]
コードの表示

 

、Dockerfileはじめに

1.基本

  • 各命令は大文字で予約語とフォローするために、少なくとも1つのパラメータが続かなければなりません
  • 命令は、トップダウンの順序で実行されます
  • #はコメントを示します
  • 各コマンドは、新しいイメージレイヤを作成し、ミラーコミットします

実質的DockerFileの流れを実行2.Docker

  1. 容器ベースイメージからドッキングウィンドウの実行
  2. 命令を実行し、コンテナの変更を行います
  3. ドッカーコミット操作は、新しいイメージレイヤを提出することと類似に行われます
  4. ドッキングウィンドウを再びベースのミラーリングの実行は、単に新しいコンテナを提出しました
  5. 次の命令の実行Dockerfileすべての命令が完了するまで実行

3.DockerFileアーキテクチャ(予約語命令)

FROM:現在の新しいイメージベースのミラーベースイメージ、

擁護者の名前とメールアドレスのミラーリング:MAINTAINER 

RUNを:構築する際に必要とされるコマンドを実行し、コンテナ

外部現在のコンテナ港が露出:EXPOSE 

あなたが指定したコンテナターミナルを作成した後:WORKDIRを入ってくる作業ディレクトリログインデフォルトでは、足場の

ENV:ミラーを構築するために使用されるプロセスは、環境変数を設定

ADD:ディレクトリイメージのホストファイルをし、ADDコマンド処理URLにコピーされ、自動的にtarアーカイブの解凍

コピー:同様のADDを、ミラーにファイルやディレクトリをコピーします。(COPYのsrc DESTまたはCOPY [「SRC」は、「DEST」は])

VOLUME:データストレージおよび永続作業用コンテナボリュームデータ、

CMD:実行を開始するコンテナ指定されたコマンドは、Dockerfile CMDは、複数の命令を有することができますしかし、最後のものだけではCMDは、パラメータファイル名を指定して実行ドッカー後に交換され、動作する

コンテナが実行を開始し、指定されたコマンド、ENTRYPOINT目的とCMD、指定されたコンテナ内にあり、プログラムパラメータを起動します。エントリーポイント

ONBUILD:建物があるときミラーのキルトは、父親のonbuildを継承した後にコマンドを実行しますDockerfile継承、親が鏡にトリガされ

 

第二に、カスタムイメージ

ドッカーハブは、画像の99%などの、インストールと実行ソフトウェアビルドミラーベースを構成することにより、必要とされる:ゼロから、CentOSのFROM

1.カスタムCentOSの

作るあなた自身のミラーが含まれています:着陸後のデフォルト・パスは、Vimエディタを、ネットワーク構成のifconfigコマンドのサポートを表示

dockerfileファイル

FROM CentOSの
 MAINTAINER jhxxb 

ENV MYPATHは/ usr / local
 WORKDIR $ MYPATH 

RUN yumをVimのインストール-y
 RUNをyumのネットツールがインストール-y 

EXPOSE 80 CMD エコー$ MYPATH
 CMDは「成功をエコー------------- -ok」
 CMD / binに/ bashの

実行の構築

#は、現在のパスことを示し
ドッカービルド -f -t mycentos mydockerfile:0.1

必要な機能をサポートしていることを確認します

表示画像の変更履歴

ドッキングウィンドウ履歴mycentos:0.1

2.CMDとENTRYPOINT

Dockerfileは、複数のCMDコマンドを持つことができますが、最後のものだけが動作するには、CMDパラメータは、ドッキングウィンドウの実行後に置き換えられます。

dockerfileファイル

FROM CentOSの
 RUN のyum -yカールインストール
 CMD [ "カール"、 "-s"、 "https://ip.cnを"]

私たちは、HTTPヘッダー情報を表示したい場合は、-iオプションが、間違っていることが、そのような引数を実行するコマンドを追加する必要があります。

ミラー名の後ろにコマンドですので、それはデフォルト値のCMDランタイムに置き換えられます。したがって、ここで-iは、元のCMDを交換し、元のカール-s https://ip.cn後に追加されません。-iコマンドではないので、自然に見つけることができません。

ドッキングウィンドウは、-f -t mydockerfile MYIPを構築:0.1 
ドッキングウィンドウを実行MYIP:0.1 -i

解決策は2つあります

完全なコマンドを入力します。

ドッキングウィンドウの実行MYIP:0.1カール-sます。https:// ip.cn -i

0.1 -i実行:あなたは直接ドッキングウィンドウの実行MYIPを使用できるように、ENTRYPOINTビルドを使用します

FROM CentOSの
 RUN のyum -yカールインストール
 ENTRYPOINT [ "カール"、 "-s"、 "https://ip.cnを"]

3.カスタムミラーTomcat9

環境の準備

dockerfileファイル

FROM CentOSの
 上のMAINTAINER jhxxb 

jdk1へ#。カレントディレクトリのホストの下に 8 コンテナは/ usr / local /パスにコピー.0_221
 COPY jdk1.8.0_221 / /usr/local/jdk1.8 .0_221 / 

ホストへ#カレントディレクトリTomcatはは/ usr / local /パスの下に容器に加え
ADDのApache-Tomcatの-9.0.24 .tar.gzのは/ usr / local / 

マウント#1のvimエディタ
RUNをvimの-Yインストールyumの

#をアクセス時間の設定作業WORKDIRの、パスをログインは足場
 ENV MYPATHは/ usr / local
 WORKDIRの$のMYPATHの

#のJavaとTomcatの設定環境変数
ENV JAVA_HOMEが/usr/local/jdk1.8 .0_221
 ENVを$ JAVA_HOME / lib / tools.jarを:CLASSPATH $ JAVA_HOME / libに/ dt.jar
 ENV/Usr/local/apache-tomcat-9.0.24 CATALINA_HOME
 ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.24
 ENV PATHは、PATHを$:$のJAVA_HOME / binにします。$ CATALINA_HOME / libに:$ CATALINA_HOME / binに

#ランタイムコンテナポートがリスニング
EXPOSE   8080 

#開始時間をTomcatの実行しているエントリポイント [ "/usr/local/apache-tomcat-9.0.24/bin/startup.sh" ]
 CMDを [「/usr/local/apache-tomcat-9.0.24/ビン/ catalina.sh "" RUN " ] CMD /usr/local/apache-tomcat-9.0.24/bin/startup.sh &&は、tail -f /usr/local/apache-tomcat-9.0.24/bin/ログ/ catalina.out

ビルドリソースディレクトリで

ドッキングウィンドウは、-f -t mydockerfile mytomcatを構築:0.1

効果を確認するために実行します

ドッキングウィンドウの実行は、-p -d 90808080 --name myt9 -vを/ tmp / tomcat9logs /:/ apacheの-tomcat-は/ usr / local 9.024 /ログは= --privileged  mytomcatを:0.1

 

第三に、プロセスの使用


https://docs.docker.com/engine/reference/builder/

おすすめ

転載: www.cnblogs.com/jhxxb/p/11445594.html