PUBLIC
DEVOPSコンテナ6 MIN READ

TERM 007

Container

アプリと実行条件を、運べる単位にする

Containerは、アプリ本体と依存ライブラリ、設定された実行方法をひとまとめにし、隔離されたプロセスとして動かす仕組みです。同じOSカーネルを共有するため、仮想マシンより軽量です。

01IMAGE実行内容を固める
02CREATE隔離環境を作る
03RUNプロセスを動かす
OVERVIEW

アプリと実行環境をひとまとめにして動かす単位の全体像。

CONTENTSこの記事の目次

QUICK OVERVIEW

30秒でつかむ

01IMAGE

配布する設計図

レイヤー化されたファイル群と起動設定を保持します。

02RUNTIME

実行を管理する層

イメージを展開し、隔離や資源制限を設定します。

03EPHEMERAL

作り直せる前提

永続データは外部ストレージへ置き、コンテナを交換可能にします。

01 — DEFINITION

Containerとは
何か

Containerは、アプリ本体と依存ライブラリ、設定された実行方法をひとまとめにし、隔離されたプロセスとして動かす仕組みです。同じOSカーネルを共有するため、仮想マシンより軽量です。

02 — HOW IT WORKS

仕組みを
3段階で見る

細部へ入る前に、入力から結果までの役割を順番に捉えます。

INPUTPROCESSOUTPUT
01IMAGE

実行内容を固める

アプリと依存物を変更不能なイメージにする。

02CREATE

隔離環境を作る

ファイル、ネットワーク、プロセス空間を分ける。

03RUN

プロセスを動かす

制限された資源の中でアプリを起動する。

PROCESS

Containerを理解するときの、最小の処理単位です。

03 — ESSENTIALS

押さえるべき
3つの要点

名前だけでなく、この3点の関係まで理解すると実装へつなげやすくなります。

01IMAGE

配布する設計図

レイヤー化されたファイル群と起動設定を保持します。

02RUNTIME

実行を管理する層

イメージを展開し、隔離や資源制限を設定します。

03EPHEMERAL

作り直せる前提

永続データは外部ストレージへ置き、コンテナを交換可能にします。

04 — REAL WORLD EXAMPLE

APIを開発PCと本番で同じように動かす

言語やライブラリの版が環境ごとに違うと、動作差分が生まれます。

SCENARIO / CONTAINERSTEP BY STEP
  1. 01

    必要なランタイムとアプリをイメージ化する

  2. 02

    環境ごとの差は外部設定として渡す

  3. 03

    同じイメージを検証後に本番で起動する

RESULT配布物を固定し、環境差分による「手元では動く」を減らせます。

05 — WATCH OUT

理解するときの
注意点

便利な仕組みほど、守備範囲と失敗の前提を明確にします。

01

イメージへ秘密を入れない

レイヤー履歴に残るため、秘密は実行時にSecret Managerなどから渡します。

02

隔離を絶対視しない

権限を絞り、更新済みのベースイメージとランタイムを利用します。

IN ONE SENTENCE

Containerとは?

アプリと実行環境をひとまとめにして動かす単位

KEEP EXPLORING

DEVOPSDocker掲載中DEVOPSKubernetes掲載中CLOUDServerless掲載中