見本
FROM debian:latest
ENV APACHE_CONFDIR=/etc/apache2
ENV APACHE_ENVVARS=$APACHE_CONFDIR/envvars
WORKDIR /var/www/html
RUN apt-get update \
&& apt-get install -y apache2
COPY index.html /var/www/html/
CMD [ "apachectl", "-D", "FOREGROUND" ]
# ENTRYPOINT [ "echo", "default" ]
# CMD [ "addaaa" ]
FROM ベースイメージの指定
FROM debian:latest
FROM イメージ名:タグ名
docker hub でほしいイメージを手に入れるかも
COPY ローカルのファイルをコンテナにコピー
COPY index.html /var/www/html/
ローカルにあるファイルをコンテナにコピーする
RUN パッケージなどのインストールのコマンドの実行
RUN apt-get update \
&& apt-get install -y apache2
上記を下記のようにかけますがお勧めしません。理由はRUNの数が多いほどビルド後のイメージサイズが大きくなりがち
RUN apt-get update
RUN apt-get install -y apache2
WORKDIR コンテナのデフォルトディレクトリの指定
WORKDIR /var/www/html
コンテナにログインした時のデフォルトディレクトリになる
ENV 環境変数
ENV APACHE_CONFDIR=/etc/apache2
ENV APACHE_ENVVARS=$APACHE_CONFDIR/envvars
環境変数を設定できます
主に知られては困るアカウントやパスワードなどを設定する時に有効です。
またここで設定した環境変数は自身のDockerfile内で使える
更にコンテナの中でも使える
例えばENV APACHE_CONFDIR=/etc/apache2の設定をコンテナにアクセスした後
echo APACHE_CONFDIRを実行すると
/etc/apache2が表示される
CMD コマンド実行
CMD [ “apachectl”, “-D”, “FOREGROUND” ]
コンテナ立ち上げ後、デフォルトで実行したいコマンドになります。
docker container run で引数を指定すると、CMDで書いたコマンドがまるっと上書きされて実行されます。
ENTRYPOINT デフォルトコマンドの設定
ENTRYPOINT [ “echo”, “default” ]
コンテナ立ち上げ後、必ず実行したいコマンドを記述する
docker container run serviceName を実行すると
echo defaultが実装され、defaultが表示されます。
が、docker container run serviceName abcにすれば
default abcが表示されます。
またENTRYPOINTの次にCMDを設定した場合
CMDで設定した内容がENTRYPOINTのオプションになります。
ENTRYPOINT [ “echo”, “default” ]
CMD [ “addaaa” ]
上記の場合、default addaaaが表示されます。
コメント