【Docker7,8,9,10】DockerfileからDocker imageを作成する

前回は、よく使われるdockerコマンドやオプションについて紹介してきました。

今回は、Dockerfileの作成、ビルド(構築)、Docker image⇨コンテナを作るまで学んでいこう!

本記事の対象者

○プログラミング初心者

○Dockerの基礎の基礎部分を勉強したい人

Dockerfileとは?

✅ Docker imageの構成を表現しているファイル(設計図のようなもの)
✅ “Dockerfile”というファイル名前 ⇦ テキストファイル
✅ ” INSTRUCTION arguments “の形で記載していく

Dockerfileを作成していく

Dockerfileはただのテキストファイルなので、そのまま開いて記述していくこともできますが、今回はVisual Studio Code(VScode)という無料のIDEツールを使って作成していきます。

Visual Studio Codeのインストール

公式HPにアクセスし、ダウンロード&インストールをしていきます。

VScode でDockerfile を作成&起動
Dockerfileを作成

$ code Dockerfile : Dockerfileを作る (IDE : VScodeで)

👇こんな感じで立ち上がればOKです。

Dokcerfileの書き方基本

✅ベースとなるimageをPC上の中から選定(ない場合はDockerHub等からpullしてくる)
 ※慣れない内はubuntuを入れて、そこに少しずつlayer(変更)を加えてみよう。
  慣れたら比較的容量が小さく、必要最低限揃っているalpine(5MB)を試してみる。
✅FROMから書き始める(ex. FROM ubuntu:latest→ubuntuOSをベースにする)
✅RUNで実行したい操作を記述していく(ex. RUN touch test ※testファイルを作る)
 ⚠️Docker imageのlayer数は最小限になるように記述する
  (layerが発生するコマンドはRUN,COPY,ADDの3つ)
✅Dockerfileを作成している時はcacheを上手く使っていく。
✅”CMD”にデフォルトコマンドを設定する(特に指定がなければ”bin/bash”にする)

Docker buildコマンドでDockerfile ⇨ Docker imageを作成
Dockerfileからimageを作成

$ docker build (-f <Dockerfile.name> -t <imageName>) <build context>
: <Dockerfile.name>から<imageName>という名前のDocker imageを<build context>に作成

フォルダ内にDockerfileが一つで、ビルドコンテキストがカレントディレクトリの場合

フォルダ内にDockerfileが複数ある、ビルドコンテキストがカレントディレクトリではない時

いかがだったでしょうか?

次回は、Dockerfileに記述する’COPY’と’ADD’の違いについて触れていこうと思います。

今回はこの辺で、バイバイ👋