Dockerfile 作成
Dockerfile
Dockerイメージを作成する時の情報を保持する
※主要命令
命令 | 説明 |
---|---|
FROM | ベースイメージの指定 |
MAINTAINER | ベースイメージの指定 |
RUN | コマンド実行 |
CMD | デーモン実行 |
ENV | 環境変数の設定 |
EXPOSE | ポートのエクスポート |
COPY | ファイルのコピー |
ADD | ファイル/ディレクトリの追加 |
COPY | ファイルのコピー |
VOLUME | ボリュームがのマウント |
ENTRYPOINT | デーモン実行 |
USER | ユーザの指定 |
WORKDIR | 作業ディレクトリの指定 |
ONBUILD | ビルド完了後に実行される命令 |
FROM
FROM [イメージ名] FROM [イメージ名]:[タグ名] FROM [イメージ名]@[ダイジェット]
RUN
イメージを作成するために実行するコマンド
RUNで実行されるタイミングで中間イメージはレイア化され、分かれてします。 すべてのレイアは127レイアを超えられない。
RUN [実行したいコマンド]
※Exec形式
RUN ["echo", "hello"] RUN ["/bin/bash","-c","echo 'hello'"]
※Shell形式
RUN echo "hello"
CMD
イメージを元に生成したコンテナ内で実行するコマンド。 Dockerfileでは1つのコマンドのみ記述可能。
CMD [実行したいコマンド]
※記述はExec形式とShell形式を使用
ENTRYPOINT
docker run コマンドで実行した時に実行されるコマンド
※CMDとの違い、CMDの場合、docker run時に指定したコマンドが優先実行されるがENTRYPOINTのコマンドは指定が有っても強制的に実行される。
ENTRYPOINT [実行したいコマンド]
※記述はExec形式とShell形式を使用
docker run実行時パラメータを任意に指定して実行することが可能です
$ docker run -it sample -d 2
※イメージのENTRYPOINTに指定されたコマンドに「-d 2」のパラメータが適用される。
ONBUILD
ビルド実行後に実行されるコマンド
ONBUILD [実行したいコマンド]
例
ONBUILD ADD website.tar /var/www/html/
ADD指定によりビルド後、website.tarが/var/www/html/配下に鉢して、tarファイルが展開される。
DockerfileからDockerイメージ作成
「docker build -t {イメージ名}:{タグ名} {Dockerfileの場所}」
Dockerfileの場所に有るファイルはすべてDocker関連ファイルのルートとして必要なファイルやコマンドで使用するファイルとなる。
$ docker build -t myimage:1 /home/docker/webdev