Open5

「仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん」を読む

yy

Chapter1 Dockerって何だろう

Section 1

  • Dockerはコンテナを使う仕組み
  • container(コンテナ)はパソコンやサーバ上の独立した環境のこと。
  • image(イメージ)からコンテナを作成できる。
  • DockerはLinuxが前提
    • コンテナに入れるプログラムもLinux用のものを使う
    • どこかしらでLinux OSを使わなくてはならない

Section 2

  • サーバ...物理的なサーバと機能としてのサーバの二通りの意味がある。
    • 機能はソフトウェアにより提供される。
  • コンテナ技術により複数のサーバを同じサーバマシン上で動かすことが可能に。
  • Dockerさえあれば別のところにコンテナを動かすことも可能。
    • 正確に言えば再構築
    • 環境での差分を吸収できる。
yy

Chapter 2 Dockerが動く仕組み

Section 1 Dockerが動く仕組み

  • コンテナには大体OSっぽいものが入っている。

    • OSはカーネル+周辺部分
    • この実際にハードウェアを操作する「カーネル」に周辺部分から伝達。
    • この「周辺部分」のみをコンテナに入れ、土台となるOSのカーネルで実行をする。
    • 利点:カーネルを入れなくていいので軽い
  • Linuxのカーネルを使う前提のためLinux用のプログラムを用いることになっている。

    • Docker Desktop for Windows / Macは必要なLinuxOSをインストールしている?

    Section 2 Docker Hubとイメージとコンテナ

    • イメージを型のようにしてコンテナができる。
    • コンテナからイメージを作ることも可能。
      • イメージからコンテナを作りそこに手を加えてイメージにすることもできる。
    • Docker Hubでいろんなイメージが配布されている。
      • 公式などが配布しているものを使うと安全。
    • コンテナの組み合わせ方も考える必要がある。
      • アプリを同じコンテナに入れるor分ける

Section 3 Dockerコンテナのライフサイクルとデータの保存

  • アップデートの仕方
    • 古いコンテナは捨てる(手間がかかる)
    • イメージから新しいコンテナを作成する。
  • 作成→起動→停止→破棄の流れをコンテナのライフサイクルと呼ぶ
  • データはDockerを入れているマシンの方に入れておく。
    • コンテナを破棄してもデータは消えない。
    • 他のコンテナとも共有できる。

Section 4 Dockerのメリットとデメリット

  • キーワードは「複数」「移行」「作成」「セキュア」
  • デメリットはOSの制約や物理への依存
    • Linux用ソフトウェアが前提となる
    • 物理的な部分が故障した時の影響が大きい
yy

Chapter 3 Dockerを使ってみよう

Section1 Dockerを使うには

  • WindowsやMacで利用する
    1. デスクトップ版
      • Docker用のLinux環境が作成され、OS内に2つのOSが同居する状態に。
        • WindowsだとHyper-V、macだとHyperKitという仮想化ソフトが利用されている。
      • ユーザからは意識しなくて良い。
    2. 仮想マシンを利用
      • LinuxOSを立ち上げてその上でDockerEngineを動かす。
  • 64bit版のOS上でしか動かない。
yy

Chapter4 Dockerにコンテナを入れて動かしてみよう

Section1 Docker Engineの起動と終了

  • Dockerコンテナは自動起動が可能だがコンテナは明示的に起動しないといけない

Section2 コンテナ操作の基本

  • コマンドは「上位コマンド(top-level solo commands)」と「副コマンド(sub-command)」で構成される
  • 単独コマンド:上位コマンドを持たないコマンド
  • dockerコマンドの上位コマンド4種類
  1. container ... コンテナ関連
  2. image ... イメージ関連
  3. volume ... ボリューム(コンテナからマウントできるストレージ)
  4. network ... Dockerネットワーク(Docker同士が接続するのに使う仮想的なネットワーク)関連

Section3 コンテナの作成・削除と、起動・停止

  • docker (image) pullでイメージのダウンロード、docker (container) createでコンテナの作成、docker (container) startでコンテナ起動ができる。
    • docker (containe) runで3つがまとめて実行できる。
  • docker (container) rmでコンテナを削除できる。
  • docker ps (container ls)でコンテナ一覧を表示できる。

Section4 コンテナと通信

  • -p <hostのport number>:<containerのport number>でポートを設定。

Section5 コンテナ作成に慣れよう

  • -dit: バックグラウンドで実行、キーボードから操作できる様に

Section6 イメージの削除

  • docker image lsでイメージの一覧が見れる。