BFT名古屋 TECH BLOG

日々の業務で得た知識を所属するエンジニアたちがアウトプットしていきます。

【Dokcer】自作のDockerイメージを実行する方法

はじめまして、名古屋支店のヤタテです。
今回の記事では、Dockerfileから自前のDockerイメージを作成する手順を書いてみます。
ゴールはdocker runコマンドで動作させるところまでです。

Dockerfileとは

Docker上で動作させるコンテナの構成情報を記述するファイルのこと。Dockerfileから作成されたDockerイメージは、公開されているDockerイメージにはない自分専用のものとなる。

Dockerfile のコマンド

Dockerfile内で使用できる主なコマンドを紹介する。

No コマンド 説明
1 FROM ベースイメージを指定する際に使用。
事前にベースイメージを取得(pull)していなくても自動取得する。
2 RUN OSのコマンドを実行する際に使用。
パッケージのインストールなどに使用される。
3 CMD コンテナ起動時に実行するコマンドを指定する際に使用。
Dockerfileには1つしか記述できない。
4 COPY コンテナ内にファイルやディレクトリをコピーする際に使用。

1行に1コマンドを記載し、上から順に実行される。ただし、直前のコマンド実行状態になるわけではない。また、#で始まる行はコメント行となる。
ベースイメージscratchは、空のイメージでshやbashの実行もできない。
上記のもの以外や詳細については、こちら(Dockerfile リファレンス)が参考となる。

Dockerイメージの作成

実際にDockerfileからDockerイメージの作成をする。

1.Dockerfile

今回使用するDockerfileは以下のものとする。

#amazonlinuxの最新版をベースイメージとする
FROM amazonlinux:latest

#スクリプト用ディレクトリの作成
RUN mkdir /script

#シェルスクリプトを作成したディレクトリにコピー
COPY hello_world.sh /script/

#シェルスクリプトの実行
CMD ["sh","/script/hello_world.sh"]

シェルスクリプトは、以下のような簡単なものでDockerfileと同じディレクトリに配置してあるものとする。

#!/bin/sh
echo 'Hello World'

2.Dockerイメージの作成

以下のコマンドで、Dockerをビルドする。

docker build -t amazonlinux:v1 .

このコマンドは、Dockerfileが存在するディレクトリで実行する。
オプション「-f」を使用することで、Dockerfileの指定も可能である。

3.コンテナの起動

以下のどちらかのコマンドで、コンテナを起動する。
① コンテナの起動と削除を同時に行う

docker run --rm amazonlinux:v1

②コンテナの起動と名前を付ける

docker run --name <container名> -it amazonlinux:v1

まとめ

上記手順を実行し、「Hello World」が出力されれば成功である。
DockerはAWSにも使用さている技術である。そちらについてはこちらの記事を参考に