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ファイルの作成
    #    
    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'