DockerFileの基礎知識
2555 ワード
1.基礎知識各予約ワード命令は、大文字である必要があり、後に少なくとも1つのパラメータ(すなわち、キーワードのみを書くことができず、パラメータに従わない) に続く必要がある.命令は、上から下への順に を実行する.は注釈の意味 です各コマンドは、新しいミラーレイヤを作成し、ミラーを にコミットします.
2.dockefileを実行する大まかな流れ dockerベースミラーからコンテナ を実行命令を実行し、容器を修正する . docker commitのような操作を実行して、新しいミラーレイヤ をコミットする dockerは、コミットされたばかりのミラーに基づいて新しいコンテナ を実行する. dockerfileの次の命令は、すべての命令が を完了するまで実行する.
3.指令紹介 FROM:ベースミラー、現在の新しいミラーは、どの既存のミラーイメージに基づく であるか MAINTAINER:ミラー作成者およびそのメールボックス RUN:コンテナ構築時に実行するコマンド EXPOSE:露出ミラーのポート番号 WORKDIR:コンテナの作成後、端末がデフォルトでログインする作業ディレクトリを指定します. ENV:ミラーの構築中に環境変数を設定するための ADD:ホストディレクトリの下のファイルをミラーにコピーし、ADDコマンドはURLを自動的に処理し、tar圧縮パッケージ を解凍する. COPY:ADDと同様に、ファイルとディレクトリをミラーにコピーする VOLUME:コンテナデータボリューム、データ保存および永続化作業用 CMD:1つのコンテナの起動時に実行するコマンドを指定します.dockefileには複数のcmdコマンドがありますが、最後の1つだけ有効で、cmdはdocker run後のパラメータに 置き換えられます. ENTRYPOINT:コンテナ起動時に実行するコマンドを指定し、CMDの目的と同様に、コンテナ起動プログラムおよびパラメータ を指定します. ONBUILD:継承されたdockefileを構築するときにコマンドが実行され、親ミラーが布団継承後に親ミラーのonbuildがトリガーされる .
4.ケース
4.1 Baseミラーリング
scratch:Dockerの99%のミラーはbaseミラーにインストール構成で構築されています
4.2 dockefileファイルの作成
4.3 dockerfileファイルを実行し、ミラーを作成する
[画像のアップロードに失敗しました…(image-ee 8 b 95-1540119959172)]具体的な説明:(1)ミラーコマンドをコンパイルし、-tの後ろに生成されたミラーの名前とTAG;ちょっと気になるのが、コンパイルのパスはディレクトリ名で、そのディレクトリの下でDockfile名のファイルを自動的に探して自動コンパイルする必要があります.(2)コンパイル手順は,Dockefileファイルにおけるコード順である.(3)
4.4ミラーによるコンテナの作成
2.dockefileを実行する大まかな流れ
3.指令紹介
4.ケース
4.1 Baseミラーリング
scratch:Dockerの99%のミラーはbaseミラーにインストール構成で構築されています
4.2 dockefileファイルの作成
#
flynngod@flynngod:~/FlynnGod/Code/DockerDir$ cat Dockerfile
#
# , scratch
FROM python
#
MAINTAINER MoonMonsters [email protected]
#
ENV MAIN_PATH /usr/local
# , shell
WORKDIR $MAIN_PATH
#
RUN pip install flask
#
EXPOSE 80
# CMD ,
CMD echo $MAIN_PATH
CMD echo "build success..."
# pip
CMD echo pip -V
# python
CMD echo python -V
, shell
CMD /bin/bash
4.3 dockerfileファイルを実行し、ミラーを作成する
[画像のアップロードに失敗しました…(image-ee 8 b 95-1540119959172)]具体的な説明:(1)ミラーコマンドをコンパイルし、-tの後ろに生成されたミラーの名前とTAG;ちょっと気になるのが、コンパイルのパスはディレクトリ名で、そのディレクトリの下でDockfile名のファイルを自動的に探して自動コンパイルする必要があります.(2)コンパイル手順は,Dockefileファイルにおけるコード順である.(3)
pip install flask
コマンドが実行され、ネットワークまたはキャッシュからダウンロードされます.前にテストされたため、このステップで自動的にキャッシュからロードされます.(4)コンパイル成功のヒント.(5)作成したミラーをdocker images
で表示する.4.4ミラーによるコンテナの作成
flynngod@flynngod:~/FlynnGod/Code/DockerDir$ docker run -it --name=mypython customer_python:v2
root@e6e67c899b38:/usr/local# python
Python 3.7.0 (default, Oct 16 2018, 07:10:55)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import flask
# flask
>>> flask.__version__
'1.0.2'