Dockerでマイクロサービスを実行
5643 ワード
文書ディレクトリ 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命令用語はベースミラーを指定し、RUN命令は命令を実行するために使用される.
2:Dockerfileが存在するパスで、次のコマンドを実行してミラーを構築します.
ただし、コマンドの最後の(.)現在のパスを表すパスパラメータ伝達に使用します.3:ミラーを使用してDockerコンテナを起動するには、次のコマンドを実行します.
4:アクセスhttp://DockerホストIP:92/、先ほど修正したホームページが表示されます.
Dockerfile共通命令
命令の一般的なフォーマットは、命令名パラメータです.
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は自動的に解凍します.
例:
ARG構築パラメータの設定
ARG命令は、ENVと同様に構築パラメータを設定するために使用される.ARGは構築時の環境変数を設定しており,コンテナ実行時にはこれらの変数は存在しない.
例:ARG user 1=someuser
CMDコンテナ起動コマンド
CMD命令は、実行コンテナにデフォルト値を与えるために使用される.各Dockerfileには1つのCMDコマンドしかありません.複数のCMDコマンドが指定されている場合は、最後の1つだけが実行されます.コンテナを起動するときに実行するコマンドが指定されている場合は、CMD指定のコマンドが上書きされます.3種類のフォーマットをサポートします.
例:
COPYコピーファイル
次の形式でファイルをコピーします.
ローカルエンドのsrcをコンテナのdestにコピーします.COPYではURLや圧縮パッケージはサポートされていません.
ENTRYPOINTエントリポイント
書式:
ENTRYPOINTはCMDコマンドと同様にDockerコンテナ起動時に実行するコマンドを指定し、複数回設定できますが、最後の1つだけ有効です.
ENV環境変数の設定
ENV指令用語設定環境変数、形式:
例:
EXPOSEが露出したポートを宣言
EXPOSE命令用語は、実行時にコンテナがサービスを提供するポートを宣言し、フォーマットは以下の通りである.
これは宣言にすぎず、実行時に宣言によって対応するポートが開くことはありません.この命令の役割は、主にミラー使用者がミラーサービスのデーモンポートを理解することを助けることである.次に、実行時にランダムマッピングを使用すると、EXPOSEのポートが自動的にマッピングされます.例:
FROMベースミラーの指定
FROMコマンドを使用してベースミラーを指定します.FROMコマンドはJavaのextendsキーに似ています.FROM命令は指定し、他の命令の前に書く必要があります.FROM命令後のすべての命令は,その命令によって指定されたミラーに依存する.3種類のフォーマットをサポートします.
LABELミラーにメタデータを追加
LABELコマンドは、ミラーにメタデータを追加するために使用されます.書式:
例:
MAINTAINERメンテナンス担当者指定情報
MAINTAINERコマンドは、Dockerfileに署名するためのメンテナンス者の情報を指定するために使用されます.書式:
例:
RUN実行命令
2つのフォーマットをサポートします.
USERユーザーの設定
このコマンドは、ミラー起動時のユーザまたはUIDを設定するために使用され、そのコマンドの後に書かれたRUN、CMDおよびENTRYPOINTコマンドは、いずれもこのユーザ実行コマンドを使用する.フォーマット:USERユーザー名例:USER demo
VOLUMEマウントポイントの指定
このコマンドは、コンテナ内の1つのディレクトリを永続化して格納する機能を有し、コンテナ自体で使用したり、他のコンテナに共有したりすることができます.このコマンドは、コンテナ内のアプリケーションにデータを永続化する必要がある場合にDockerfileで使用できます.フォーマット:
形式は:WORKDIR/path/to/workdir切替ディレクトリ命令、cdのように、この命令に書かれたRUN、CMDおよびENTRYPOINTは、いずれもこのディレクトリを現在のディレクトリとし、対応する命令を実行する.
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であってもよいし、圧縮パッケージであってもよい.
例:
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 /data
WORKDIR指定作業ディレクトリ形式は:WORKDIR/path/to/workdir切替ディレクトリ命令、cdのように、この命令に書かれたRUN、CMDおよびENTRYPOINTは、いずれもこのディレクトリを現在のディレクトリとし、対応する命令を実行する.