5.
イメージ作成とコンテナ起動
ファイル構成
LinuxのUbuntu 20.04のイメージを作成し、コンテナを起動してみましょう。まず「test」プロジェクトフォルダを作成し、Dockerfileとdocker-entrypoint.shファイルを追加します。

test
├── Dockerfile
└── docker-entrypoint.sh
シェルスクリプト作成
docker-entrypoint.shファイルは、コンテナ開始時にコマンド実行します。シェルコマンド実行するexecを追記します。 "$@" でコマンドの引数受け渡しできます。
#! /bin/sh
exec "$@"
Dockerfileの作成
Linuxイメージの指定
LinuxのUbuntu 20.04のイメージを作成するDockerfileを作成します。バージョンは:(セミコロン) で指定します。バージョン指定しないと常に最新バージョンが選択されてしまうので注意が必要です。
FROM ubuntu:20.04
シェルスクリプトのコピー
COPYでdocker-entorypoint.shを /tmp/ にコピーします。
FROM ubuntu:20.04
COPY docker-entrypoint.sh /tmp/
シェルスクリプトの移動と実行権限付与
RUNでdocker-entorypoint.shを /usr/local/bin に移動します。またアクセス権限も付与します。
FROM ubuntu:20.04
COPY docker-entrypoint.sh /tmp/
RUN mv /tmp/docker-entrypoint.sh /usr/local/bin; \
chmod +x /usr/local/bin/bindocker-entrypoint.sh/
シェルスクリプトの実行
ENTRYPOINTでコンテナ起動時のシェルスクリプトを指定します。CMDでコマンドを引数をつけてコンテナ起動時にシェルスクリプトを実行します。
FROM ubuntu:20.04
COPY docker-entrypoint.sh /tmp/
RUN mv /tmp/docker-entrypoint.sh /usr/local/bin; \
chmod +x /usr/local/bin/bindocker-entrypoint.sh;
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["echo", "Hello Docker"]
ビルドとコンテナ起動
イメージのビルド
イメージをタグ名「test」でビルドします。タグ名は /(スラッシュ) でユーザ名をつけておくと、DockerHubで管理するのに便利です。
% docker build -t ユーザ名/test .
イメージの確認
作成したDockerイメージ「test」を確認します。
% docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ユーザ名/test latest eb4e47233c83 54 minutes ago 72.8MB
コンテナの起動と削除
コンテナの起動
docker run で「test」コンテナを起動します。起動時に環境変数の内容と「Hello Docker」とスクリプトが実行されているか確認します。
% docker run ユーザ名/test
Hello Docker
コンテナの削除
動作が確認できたら、停止中のコンテナをすべて削除します。
% docker container prune
イメージの削除
作成したイメージを削除します。
% docker rmi ユーザ名/test