コンテナの仕組み
アプリケーションと依存関係を一つのパッケージにまとめ、独立して実行できる環境。
別環境でも動かせる移植性
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,実行、監視などを担う