1. イメージの種類とコンテナ管理
Dockerイメージは以下の2種類に分類されます:
- 基本システムイメージ(ベースイメージとして使用)
- サービスレベルのイメージ(コンテナサービスを直接起動可能)
基本イメージの取得方法
# 公式リポジトリからCentOSイメージを取得
docker import http://example.com/centos7.tar.gz centos:7.0
# Ubuntuイメージのインポート
docker import ./ubuntu-18.04.tar.gz ubuntu:18.04
サービスイメージの操作
# Nginxイメージの取得
docker pull nginx:1.15
# イメージの構成履歴を確認
docker history nginx:1.15
2. イメージとコンテナの関係
コンテナはイメージの上に読み書き可能なレイヤーを追加して動作します。ファイル変更時には、イメージからコンテナのファイルシステムへコピーが行われます。コンテナ削除時にはこの書き込みレイヤーも消去されます。
複数のコンテナが同一イメージを共有しても、書き込み操作は各コンテナの独立したレイヤーで行われるため、元のイメージファイルは変更されません。この設計によりディスク利用効率が向上します。
変更を永続化する場合は、docker commitコマンドで新規イメージを作成できます。
3. イメージリポジトリの概要
Dockerリポジトリはイメージの集中管理場所であり、ストレージと配布サービスを提供します。各リポジトリは複数のタグ(バージョン)を持つことができ、リポジトリ名:タグ形式で特定バージョンを指定します。タグ未指定時はlatestがデフォルトとなります。
リポジトリの種類:
- パブリックリポジトリ(例:Docker Hub)
- プライベートリポジトリ(例:ローカルRegistry、VMware Harbor)
イメージのアップロードと取得:
# リポジトリへのイメージプッシュ
docker push my-registry.example.com/my-image:1.0
# リポジトリからのイメージ取得
docker pull my-registry.example.com/my-image:1.0
4. プライベートレジストリの構築
プライベートレジストリの利点:
- ネットワーク帯域の効率化
- 社内統合管理の容易化
- CI/CDパイプラインとの連携
公式Registryイメージを使用した構築手順:
# Registryイメージの取得
docker pull registry:2
# コンテナの起動
docker run -d \
-p 5000:5000 \
--restart=always \
--name private-registry \
registry:2
# 自動再起動ポリシーの確認
docker inspect --format='{{.HostConfig.RestartPolicy.Name}}' private-registry