コンテナの仕組み

アプリケーションと依存関係を一つのパッケージにまとめ、独立して実行できる環境。

別環境でも動かせる移植性
VMより軽量、インフラリソースを活かす

VMはゲストOSもまとめて動かすが、コンテナはプロセスとファイルシステムのみ

それらをコンテナ専用のコンテナランタイムの上で動かすので、混ざっちゃうことは無い

コンテナをVMにデプロイして動かすというやり方が多い
Kubernetesはこれ

コンテナランタイムの仕事

  • コンテナイメージからの作成実行
  • コンテナ起動、終了、隔離

Dockerは

  • Client
    • Hostの操作
    • Docker Desktopなど
  • Host
    • コンテナ実行・管理
    • dockerd(deamon)(どっかーでぃー)
  • Refistry
    • コンテナイメージの保存・管理
    • DockerHubなど
    • 自分が作ったコンテナをデプロイする場所も含むので、Amazon ECRもここ

HostはLinuxで動かす
MacだとLinux VMで動かす

containerd
dockerdが内部で使用している
これはcontainerのpull,push,実行、監視などを担う