TERM 012
Docker
コンテナを作り、配り、動かすための道具
Dockerは、Dockerfileからイメージを構築し、レジストリで共有し、コンテナとして実行するためのツール群と仕組みです。アプリの実行条件をコード化し、環境差を小さくします。
コンテナを作成・配布・実行するための基盤の全体像。
CONTENTSこの記事の目次+
QUICK OVERVIEW
30秒でつかむ
構築手順
ベース、コピー対象、依存関係、起動方法を記述します。
変更不能な成果物
構築した内容をレイヤーとして保存し、同じ版を配布します。
イメージの保管庫
名前とタグまたはdigestで成果物を共有します。
01 — DEFINITION
Dockerとは
何か
Dockerは、Dockerfileからイメージを構築し、レジストリで共有し、コンテナとして実行するためのツール群と仕組みです。アプリの実行条件をコード化し、環境差を小さくします。
02 — HOW IT WORKS
仕組みを
3段階で見る
細部へ入る前に、入力から結果までの役割を順番に捉えます。
イメージを作る
Dockerfileの手順から再現可能な実行物を構築する。
→レジストリへ置く
版を付けたイメージを共有できる場所へ保存する。
→コンテナで動かす
同じイメージを開発・検証・本番で起動する。
Dockerを理解するときの、最小の処理単位です。
03 — ESSENTIALS
押さえるべき
3つの要点
名前だけでなく、この3点の関係まで理解すると実装へつなげやすくなります。
構築手順
ベース、コピー対象、依存関係、起動方法を記述します。
変更不能な成果物
構築した内容をレイヤーとして保存し、同じ版を配布します。
イメージの保管庫
名前とタグまたはdigestで成果物を共有します。
04 — REAL WORLD EXAMPLE
Node.js APIをチームで共有する
メンバーごとのNode.jsやOSライブラリの差をなくします。
- 01
Dockerfileへ依存関係と起動手順を書く
- 02
CIでテスト済みイメージを構築する
- 03
同じdigestのイメージを本番へ配置する
05 — WATCH OUT
理解するときの
注意点
便利な仕組みほど、守備範囲と失敗の前提を明確にします。
latestタグだけに頼らない
どの内容を実行したか追えるよう、版やdigestを固定します。
イメージを小さく保つ
不要なツールを除き、攻撃面・転送時間・更新対象を減らします。
IN ONE SENTENCE
Dockerとは?
コンテナを作成・配布・実行するための基盤。
