プロジェクト

全般

プロフィール

コンテナ

情報収集・整理

Linuxにおけるコンテナ技術

LXC: Linux Containers

  • 単一のLinuxマシン上で、複数のLinux OSを生成し実行するOS仮想化技術
  • カーネル空間はマシン上(Host Linux OS)で共有し、ユーザー空間にコンテナを複数構築する
  • LinuxカーネルのNamespaceを用いてプログラムを分離
    • プロセスID、ネットワーク、マウント(ファイルシステム)、IPC、ユーザー(UID, GID)を分離

LXD

  • LXCを便利に使う管理機能など。Canonical社主導で開発

Docker

  • 初期はLXCを用いて実現していたが、後にlibcontainerに置換える実装となった
  • 1つのコンテナは1つのプロセスを実行(原則)
    • PID1がdockerコンテナで起動したプロセス(Webサーバーとか)となる。親プロセスがkillされた孫プロセスはゾンビプロセスとなり、PID1に収容されてしまう

containerd

https://containerd.io/

コンテナに関する仕様

コンテナの標準化として、Open Container Initiative Runtime Specification が規定されています。