Dockerベース(10)-イメージ構築


ドッキングイメージ構造



ドッキングイメージ構造=レイヤアーキテクチャ
基本的には底から最初に作成されたレイヤと言える.
図では、右に行くほど、画像がコンテナに積み重ねられている様子が見えます.
コンテナ内のイメージレイヤは読み取り専用です
docker image inspect nginx:latest
上のコマンドを実行するとnginx:lastの設定が表示され、一番下のレイヤーが表示されます.

Dockerfileを使用してイメージを作成しない


docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
// ubuntu 컨테이너의 현재 상태를 my_ubuntu:v1 이미지로 생성
docker commit -a simon -m "Initial Commmit" ubuntu my_ubuntu:v1
-aオプションは作者を表し、履歴を表す

Dockerfileを使用した画像の作成

FROM node:12-alpine
RUN apk add --no-cache python3 g++ make
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]
Dockerfileの例
docker build [OPTIONS] PATH
// ./ 디렉토리를 빌드 컨텍스트로 my_app:v1 이미지 빌드 (Dockerfile 이용)
docker build -t my_app:v1 ./

// ./ 디렉토리를 빌드 컨텍스트로 my_app:v1 이미지 빌드 (example/MyDockerfile 이용)
docker build -t my_app:v1 -f example/MyDockerfile ./
-t:tagの略-f:ドッキングファイルのパスを指定します.

コンテキストの構築


「ビルドドック」コマンドを実行すると、現在のディレクトリは「ビルド」コンテキストと呼ばれます.
Dockerfileからイメージの構築に必要な情報をDockerDemonに渡す

.dockerignore


構築コンテキストから特定のディレクトリまたはファイルリストを除外する目的
.gitignoreと同じ構文
# comment
*/temp*
*/*/temp*
temp?

*.md
!README.md
.dockerinoreの例