Docker イメージの構築と管理
Docker イメージについて
Docker イメージは、コンテナ化されたアプリケーションの基盤です。イメージは、Docker コンテナを作成するための手順の集合を含む、読み取り専用のテンプレートです。イメージは、必要な依存関係、ライブラリ、設定ファイルなど、アプリケーションをパッケージ化および配布するために使用されます。
Docker イメージの構築
Docker イメージを構築するには、イメージの構築手順を含むテキストファイルである Dockerfile を作成する必要があります。以下は、例を示した Dockerfile です。
FROM ubuntu:latest
RUN apt-get update && apt-get install -y nginx
COPY index.html /usr/share/nginx/html/
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
この Dockerfile は以下の処理を行います。
- 最新の Ubuntu イメージをベースイメージとして使用します。
- パッケージインデックスを更新し、Nginx Web サーバーをインストールします。
index.html ファイルを Nginx のデフォルト Web ルートにコピーします。
- Nginx Web サーバー用にポート 80 を公開します。
- Nginx Web サーバーを起動するためのコマンドを設定します。
イメージを構築するには、以下のコマンドを実行します。
docker build -t my-nginx-image .
これにより、タグ my-nginx-image を持つイメージが構築されます。
Docker イメージの管理
Docker イメージを構築したら、以下のコマンドを使用して管理できます。
- イメージのリスト:
docker images
このコマンドは、システム上のすべての Docker イメージをリストします。
- レジストリへのイメージのプッシュ:
docker push my-nginx-image
このコマンドは、my-nginx-image を Docker Hub などの Docker レジストリにプッシュします。
- レジストリからのイメージのプル:
docker pull my-nginx-image
このコマンドは、my-nginx-image を Docker レジストリからプルします。
- イメージの削除:
docker rmi my-nginx-image
このコマンドは、my-nginx-image をシステムから削除します。
イメージレイヤーとキャッシュ
Docker イメージはレイヤーで構築され、各レイヤーはビルドプロセスにおけるステップを表します。このレイヤードアプローチにより、中間ビルドステップの効率的なキャッシュと再利用が可能になり、ビルドプロセスを大幅に高速化できます。
graph TD
subgraph Docker イメージレイヤー
base[ベースイメージ]
layer1[レイヤー 1]
layer2[レイヤー 2]
layer3[レイヤー 3]
layer1 --> base
layer2 --> layer1
layer3 --> layer2
end
Docker イメージの概念と、それらを構築および管理する方法を理解することで、アプリケーションをコンテナ化されたソリューションとして効果的にパッケージ化および配布できます。