Dockerでマイクロサービスを実行


文書ディレクトリ
  • Dockerfileを使用してDockerミラー
  • を構築
  • Dockerfile共通命令
  • ADDレプリケーションファイル
  • ARG設定構築パラメータ
  • CMDコンテナ起動コマンド
  • COPYコピーファイル
  • ENTRYPOINT入口点
  • ENV設定環境変数
  • EXPOSE宣言露出ポート
  • FROM指定ベースミラー
  • LABELミラーにメタデータを追加
  • MAINTAINER指定メンテナの情報
  • RUN実行コマンド
  • USER設定ユーザ
  • VOLUME指定マウントポイント
  • WORKDIR指定作業ディレクトリ
  • Dockerfileを使用したDockerミラーの構築
    Dockerfileは、ミラーの構築の詳細を記述するいくつかの命令を含むテキストファイルです.まず、最も簡単なDockerfileを作成し、ミラーのトップページを変更するDockerfileを作成します.1:Dockerfileというファイルを用意します.
    > FROM nginx
    > RUN echo '

    Dockerfile

    ' > /user/share/nginx/html/index.html

    FROM命令用語はベースミラーを指定し、RUN命令は命令を実行するために使用される.
    2:Dockerfileが存在するパスで、次のコマンドを実行してミラーを構築します.
    docker build -t nginx:my . 
    

    ただし、コマンドの最後の(.)現在のパスを表すパスパラメータ伝達に使用します.3:ミラーを使用してDockerコンテナを起動するには、次のコマンドを実行します.
    docker run -d -p 92:80 nginx:my
    

    4:アクセスhttp://DockerホストIP:92/、先ほど修正したホームページが表示されます.
    Dockerfile共通命令
    命令の一般的なフォーマットは、命令名パラメータです.
    ADDコピーファイル
    ADDは文系をコピーするために使用され、フォーマットは以下の通りである.
     - ADD .... 
     - ADD["",...""]
    

    srcディレクトリからコンテナのdestにファイルをコピーします.srcはDockerfileが存在するディレクトリの相対パスであってもよいし、URLであってもよいし、圧縮パッケージであってもよい.
  • srcは、docker buildコマンドがまずコンテキストパスとそのサブディレクトリをdocker daemonに送信するため、ADD.../somethine/somethingのようなコマンドを使用することはできないコンテキスト内に構築される必要があります.
  • srcがURLであり、destがスラッシュで終わらない場合、destはファイルとみなされ、srcに対応するコンテンツファイルはdestにダウンロードされます.
  • srcがURLである場合、destの一部が終了すると、destはディレクトリとみなされ、srcはコンテンツに対してdestディレクトリにダウンロードされ、
  • srcがディレクトリである場合、ファイルシステムメタデータを含む正規ディレクトリの下のコンテンツがコピーされます.
  • ファイルが認識可能な圧縮パケットフォーマットである場合、dockerは自動的に解凍します.

  • 例:
    ADD microservice-discovery-eureka-0.0.1-SNAPSHOT.jar app.jar
    

    ARG構築パラメータの設定
    ARG命令は、ENVと同様に構築パラメータを設定するために使用される.ARGは構築時の環境変数を設定しており,コンテナ実行時にはこれらの変数は存在しない.
       :ARG [name][=< default value>]
    

    例:ARG user 1=someuser
    CMDコンテナ起動コマンド
    CMD命令は、実行コンテナにデフォルト値を与えるために使用される.各Dockerfileには1つのCMDコマンドしかありません.複数のCMDコマンドが指定されている場合は、最後の1つだけが実行されます.コンテナを起動するときに実行するコマンドが指定されている場合は、CMD指定のコマンドが上書きされます.3種類のフォーマットをサポートします.
    CMD ["executable","parama","param2"]  (    )
    CMD["param1","param2"]  ( EMTRYPOINT        )
    CMD command param1 param2 ( shell   )
    

    例:
    CMD echo "test." | wc -
    

    COPYコピーファイル
    次の形式でファイルをコピーします.
     - COPY  ... 
     - COPY ["",...""]
    

    ローカルエンドのsrcをコンテナのdestにコピーします.COPYではURLや圧縮パッケージはサポートされていません.
    ENTRYPOINTエントリポイント
    書式:
    ENTRYPOINT ["executable","param1","param2"]
    ENTRYPOINT command param1 param2
    

    ENTRYPOINTはCMDコマンドと同様にDockerコンテナ起動時に実行するコマンドを指定し、複数回設定できますが、最後の1つだけ有効です.
    ENV環境変数の設定
    ENV指令用語設定環境変数、形式:
    ENV  
    ENV = ...
    

    例:
    ENV JAVA_HOME /path/to/java
    

    EXPOSEが露出したポートを宣言
    EXPOSE命令用語は、実行時にコンテナがサービスを提供するポートを宣言し、フォーマットは以下の通りである.
    EXPOSE  [...]
    

    これは宣言にすぎず、実行時に宣言によって対応するポートが開くことはありません.この命令の役割は、主にミラー使用者がミラーサービスのデーモンポートを理解することを助けることである.次に、実行時にランダムマッピングを使用すると、EXPOSEのポートが自動的にマッピングされます.例:
              
    EXPOSE port1
                
    docker run -p port1 image
        -p    
    docker run -p image
    
              
    EXPOSE port1 port2 port3
                
    docker run -p port1 -p port2 -p port3 image
                     
    docker run -p host_port1 -p host_port2:port2 -p host_port3:port3 image
    

    FROMベースミラーの指定
    FROMコマンドを使用してベースミラーを指定します.FROMコマンドはJavaのextendsキーに似ています.FROM命令は指定し、他の命令の前に書く必要があります.FROM命令後のすべての命令は,その命令によって指定されたミラーに依存する.3種類のフォーマットをサポートします.
    FROM 
    FROM :
    FROM @
    

    LABELミラーにメタデータを追加
    LABELコマンドは、ミラーにメタデータを追加するために使用されます.書式:
    LABEL = = = ...
      "   \      ;
    

    例:
    LABEL "com.example.vendor"=" ACME Incorporated"
    LABEL com.example.label-width-value="foo"
    LABEL version="1.0"
    LABEL description = "this test illustrates \
    that label-values can span multiple lines."
    

    MAINTAINERメンテナンス担当者指定情報
    MAINTAINERコマンドは、Dockerfileに署名するためのメンテナンス者の情報を指定するために使用されます.書式:
    MAINTAINER  
    

    例:
    MAINTAINER    
    

    RUN実行命令
    2つのフォーマットをサポートします.
    RUN 
    RUN ["executable","param1","param2"]
    RUN shell    , Windows  cmd /s/c。
    RUN ["executable","param1","param2"]  exec  ,       。               ,  
    RUN["/bin/bash","c","echo hello"],                  ,            JSON  。
    

    USERユーザーの設定
    このコマンドは、ミラー起動時のユーザまたはUIDを設定するために使用され、そのコマンドの後に書かれたRUN、CMDおよびENTRYPOINTコマンドは、いずれもこのユーザ実行コマンドを使用する.フォーマット:USERユーザー名例:USER demo
    VOLUMEマウントポイントの指定
    このコマンドは、コンテナ内の1つのディレクトリを永続化して格納する機能を有し、コンテナ自体で使用したり、他のコンテナに共有したりすることができます.このコマンドは、コンテナ内のアプリケーションにデータを永続化する必要がある場合にDockerfileで使用できます.フォーマット:VOLUME ["/data"]例:VOLUME /dataWORKDIR指定作業ディレクトリ
    形式は:WORKDIR/path/to/workdir切替ディレクトリ命令、cdのように、この命令に書かれたRUN、CMDおよびENTRYPOINTは、いずれもこのディレクトリを現在のディレクトリとし、対応する命令を実行する.