資料 X-1083 / AIツール
Docker 基礎:イメージレイヤー、コンテナ操作と Compose ネットワーク
技術ノート
公開 / DavidHLPL
Docker は 2 つのリポジトリの 7 つのノートで操作チェックリストとして登場します:Dockerfile、レイヤー、ボリューム、ネットワーク、Compose。本ページはチェックリストを最小の実用モデルに圧縮し、volume と bind、bridge と host、そして Compose の価値を明確化し、イメージの丸写しはしません。
核心メカニズム
1. イメージレイヤーはキャッシュと再利用の単位
| 概念 | 役割 | 境界 |
|---|---|---|
| Base Image | 共有される読み取り専用レイヤー | 可変データをイメージレイヤーに書き込まない |
| Layer | Dockerfile の 1 命令につき 1 レイヤー | 小さなレイヤーが多すぎるとメタデータが増える |
| ビルドキャッシュ | ヒットすれば再ビルドをスキップ | COPY の順序がヒット率に影響 |
出典ノート Layer和BaseImage概念.md は docker history でレイヤーを示し、Dockerfile基础.md は FROM/RUN/COPY のレイヤー効果を説明します。実務では不変の依存関係を前に、可変のソースコードを後に置くとキャッシュが効きます。
2. コンテナ操作とデータライフサイクル
docker run/stop/start/rm/rmiはコンテナとイメージのライフサイクルを管理します;出典Docker常见命令.mdはsave/load/push/pullを列挙します。- ボリューム:
volumeは Docker が管理し、コンテナ間で共有しやすくバックアップも容易;bind mountはホストパスを直接マッピングし、開発のホットリロードに適しますがホストに強く結合します。 - 選択:永続的で移植性が必要なら
volume、ホストファイルを直接編集したいならbind;データベースファイルを一時ディレクトリに bind しないでください。
3. ネットワークと Compose オーケストレーション
容器网络连接.mdはbridge(デフォルトの分離)、host(ホストネットワークを共有)、none、カスタムネットワークを区別します;カスタムネットワークはコンテナ名 DNS をサポートします。DockerCompose.mdはdocker-compose.ymlでservice/network/volumeを宣言し、up/down/ps/logs/build/pullで単一ホストの複数コンテナをカバーします。Compose は開発/テストと小規模本番に適し、K8s のスケジューリングやヘルスチェックの代替ではありません。
適用条件
- 単一ホストまたは小クラスタで K8s に依存せず宣言的なオーケストレーションが必要。
- イメージはレイヤーキャッシュ可能で、ランタイムデータは
volumeで永続化が必要。 - コンテナ間で DNS 到達可能なカスタムネットワークが必要。
不適用とリスク
- マルチホストスケジューリング、ローリング更新、ヘルスゲートは Compose を超えるオーケストレーター(例:K8s)を検討すべきです;
multi-service-readinessでreadinessとランタイムの違いを明確にしています。 docker commitで実行中コンテナをイメージ化すると Dockerfile の追跡性が失われます;再ビルドを優先してください。- bind マウントはホストパスを露出します;本番では権限と SELinux/AppArmor を評価してください。
最小検証
docker build後にdocker historyでレイヤー数とキャッシュヒットを確認。volumeとbindでそれぞれマウントし、再起動してデータ永続化を検証。docker-compose configを検証し、up -d後にpsとlogsで到達性を確認。
証拠と不確実性
- 出典事実:
ingest-docker-fundamentalsはコマンド、ボリューム、ネットワークに関する 7 つの出典ノートを verbatim で収録。 - 本ページの統合:チェックリストをレイヤー—データ—ネットワークのモデルに圧縮し、
volume/bindの選択基準を示しました。 - 未確認:イメージサイズ、ビルド時間、ネットワーク性能は未測定;Compose の
versionフィールドは現行で任意であり、出典のバージョン差は網羅的に検証していません。
関連ページ
出典と関連文書
研究記録
- 元の文書: src/content/note/ja/docker-fundamentals.md
- 出典リビジョン: f49953fb0d4bd52a39bf81167b0c4b7dd7d78a64
- 証拠の状態: 有効