docker config - taka512/memo GitHub Wiki

Dockerfile

1行につき1つの操作を{命令}と{引数}でスペース区切りで記述。「#」から始まる行はコメントとして処理。

# コメント
{命令} {引数}

命令一覧

命令 用途
FROM ベースイメージの指定
LABEL ラベルを指定(作成者の情報など)
RUN イメージを作成するためのコマンド実行
CMD コンテナでのコマンド実行
ENTRYPOINT コンテナでのコマンド実行(run時に実行される)
ONBUILD ビルド完了後に実行される命令(ベースイメージとして利用)
EXPOSE ポートのエクスポート
ENV 環境変数の指定
ADD ホスト(orリモート)のファイルディレクトリをコンテナ内に追加
COPY ホストのファイルディレクトリをコンテナ内に追加
VOLUME ホストのディレクトリをコンテナ内にマウント
USER Dockerfile内のコマンド実行ユーザの指定
WORKDIR 作業ディレクトリの指定
ARG Dockerfile内の変数を設定
STOPSIGNAL コンテナ終了時に送信するシグナルの設定
HEALTHCHECK コンテナ内のプロセスのヘルスチェック
SHELL デフォルトシェルの指定

実行例

# Dockerfileを作成
$ echo 'Hello!' > index.html
$ vi Dockerfile  
FROM centos
MAINTAINER taka512 <[email protected]>
RUN yum install -y epel-release
RUN yum install -y nginx
ADD ./index.html /usr/share/nginx/html/
ENTRYPOINT /usr/sbin/nginx -g 'daemon off;' -c /etc/nginx/nginx.conf

# Dockerfileを実行
$ sudo docker build -t taka/test1:1.0 .

# image作成確認
$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              VIRTUAL SIZE
taka/test1          1.0                 729d4c7d7ee0        About a minute ago   347.7 MB

# 起動
$ sudo  docker run -d --name nginx3 -p 80:80 taka/test1:1.0

# 起動確認
$ sudo  docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                NAMES
0e49edb9afd4        taka/test1:1.0      "/bin/sh -c '/usr/sb   7 seconds ago       Up 5 seconds        0.0.0.0:80->80/tcp   nginx3

マルチステージビルド

生成過程のコンテナと実行環境をわけて実行環境のコンテナサイズを削減する

FROM golang AS builder
RUN xxxx

FROM xxxx
COPY --from=builder /xxx .
ENTRYPOINT ["./xxx"]

docker-compose

コマンド

docker-compose up コンテナ生成/起動
-d バックグラウンド実行
--build ビルド
docker-compose stop コンテナ停止
docker-compose ps コンテナの確認
docker-compose logs コンテナログ一覧
docker-compose run コンテナ実行
docker-compose start コンテナ起動
docker-compose stop コンテナ停止
docker-compose restart コンテナ再起動
docker-compose pause コンテナ中断
docker-compose unpause コンテナ再開
docker-compose port 公開ポートの表示
docker-compose config 構成の確認
docker-compose kill 実行中コンテナの強制停止
docker-compose rm コンテナ削除
docker-compose down リソースの削除

設定

設定例

version: 3.3
services:
  web:
    build: .
  redis:
    image: redis
  tty: true  # デーモン起動

項目

version docker engineのバージョンを指定する。(3.3ならdocker engineは17.xxみたいな事)
ports ホストとコンテナのポートのマッピング
expose ホストとコンテナのポートのマッピング(連携コンテナ内のみの設定)
depends_on サービス起動の依存設定
environment 環境変数指定
env_file 環境変数をファイルで指定
container_name コンテナ名設定
labels コンテナ情報の設定
volumes ホストディレクトリをコンテナにマウント
volumes_from volmes設定の継承