Docker

Docker 上級 #1 BuildKit と buildx — ビルダーの正体
読了 8分

Docker 上級 #1 BuildKit と buildx — ビルダーの正体

中級シリーズで有効にしておいた BuildKit を一段深く見る。LLB と frontend の構造、buildx の builder インスタンス (docker-container vs docker)、--output の様々な形、そして docker buildx bake で多段ビルドを宣言的にまとめる方法まで。

Docker 中級 #6 ロギングとデバッグ
読了 8分

Docker 中級 #6 ロギングとデバッグ

複数コンテナのログを一箇所で扱い、log driver を切り替え、exec・inspect・stats・dive でコンテナの中とイメージを覗く。Docker 中級シリーズを一サイクルで締める。

Docker 中級 #5 環境変数と secrets 管理
読了 8分

Docker 中級 #5 環境変数と secrets 管理

環境変数注入の様々な形、.env ファイルと変数補間、env_file vs environment の違い、compose の secrets、BuildKit ビルドシークレット、そしてイメージに秘密が刻まれる最も典型的な間違いまで整理します。

Docker 中級 #4 compose 深掘り — depends_on, healthcheck, profiles
読了 7分

Docker 中級 #4 compose 深掘り — depends_on, healthcheck, profiles

compose.yaml に運用感覚を加える段階。healthcheck で DB が本当に準備できたかを見て、depends_on の condition で意味のある開始順序を立て、profiles で dev/test/prod を一つのファイルから分岐します。override ファイルと restart 方針まで。

Docker 中級 #3 docker compose 基礎 — web + db を一つのファイルで
読了 8分

Docker 中級 #3 docker compose 基礎 — web + db を一つのファイルで

複数のコンテナを一つのファイルに定義して一つのコマンドで起動する道具。compose.yaml の service / network / volume 構造、実践 web + postgres のセットアップ、up · down · logs · ps の日常フローまで整理します。

Docker 中級 #2 ビルドキャッシュ — BuildKit とレイヤー順序の最適化
読了 8分

Docker 中級 #2 ビルドキャッシュ — BuildKit とレイヤー順序の最適化

BuildKit がデフォルトになった Docker ビルドのキャッシュを本格的に扱う。レイヤーキャッシュが壊れやすい箇所を見極め、--mount=type=cache で npm/pip キャッシュをビルド間で共有し、COPY --link でビルドを並列化し、GHA / レジストリの外部キャッシュまで。

Docker 中級 #1 マルチステージビルドとイメージスリミング
読了 8分

Docker 中級 #1 マルチステージビルドとイメージスリミング

一つの Dockerfile の中に複数のステージを置いてビルド依存とランタイム依存を分離します。Go・Node・Python それぞれに合うマルチステージパターン、distroless と scratch まで — イメージを GB から数十 MB に減らす流れを整理します。

Docker 基礎 #6 .dockerignore とビルドコンテキスト — キャッシュをうまく使う
読了 8分

Docker 基礎 #6 .dockerignore とビルドコンテキスト — キャッシュをうまく使う

ビルドが遅くなったりイメージが膨れる最も典型的な原因はビルドコンテキストを誤って扱ったこと。コンテキストとは何か、.dockerignore でどう削るか、そしてレイヤーキャッシュが壊れやすい箇所を踏まえて命令順序を組む方法を整理します。Docker 基礎シリーズの締め。

Docker 基礎 #5 レジストリ — Docker Hub, GHCR, push/pull
読了 7分

Docker 基礎 #5 レジストリ — Docker Hub, GHCR, push/pull

自分が作ったイメージを別のマシンでも使うにはレジストリにアップロードする必要があります。イメージ名の構造、Docker Hub と GHCR のログイン、tag・push・pull の流れ、そしてダイジェストでイメージを正確に固定する方法まで整理します。

Docker 基礎 #4 ボリュームとネットワーク — データと通信
読了 9分

Docker 基礎 #4 ボリュームとネットワーク — データと通信

コンテナが死ぬと一緒に消えるデータをどう生かすか、そしてコンテナ同士をどうやって名前で呼び合うか。bind mount と named volume の違い、bridge / host / none ネットワークモード、そして -p ポートマッピングまで一箇所に整理します。

Docker 基礎 #3 イメージとコンテナ — build, run, ps, logs, exec
読了 8分

Docker 基礎 #3 イメージとコンテナ — build, run, ps, logs, exec

Docker CLI の日常コマンド群を一箇所に整理します。build のオプション、run のよく使うフラグ (-d, --name, --rm, -e)、そして ps・logs・exec・stop・rm に続くコンテナのライフサイクルまで。

Docker 基礎 #2 Dockerfile を初めて書く — FROM, RUN, COPY, CMD
読了 9分

Docker 基礎 #2 Dockerfile を初めて書く — FROM, RUN, COPY, CMD

自分のアプリのためのイメージを初めて自分で作る。FROM でベースを選び、RUN で環境を整え、COPY でコードを入れ、CMD で実行コマンドを刻む。小さな Python アプリ一つで一サイクル回す。