Docker †
- コンテナ型の仮想化ソフトウェア(LinuxのnamespaceとcgroupといったAPIで実現されている)
- OS(実行環境)とアプリケーションをコンテナイメージとして作成
- Infrastructure as Code(IaC)とImmutable Infrastructure(イミュータブル インフラストラクチャ)を実現する
Docker周辺 †
Docker Compose †
- 複数のコンテナを管理するツール
- Ansibleのようにコンテナ定義を.ymlに定義しておくと、定義通りにコンテナ環境を構築してくれる
参考
Docker Swarm †
- Docker Composerを複数のノード間で管理可能にするツール
- Containerの増減、負荷分散等を考慮したContainerの配置などを行うことができる
- より高度なソフトウェアとして、コンテナオーケストレーションツールのデファクトスタンダードである、Kubernetesがある。
参考
- さくらのナレッジ > エンジニア向け > Docker SwarmによるDockerクラスタ環境の構築(Dockerの最新機能を使ってみよう:第4回) - on https://knowledge.sakura.ad.jp/5197/
Docker Toolbox †
以前、WindowsやMac環境では、VirtualBox上でコンテナエンジンを動作させる一連のToolKitとして提供されていた。
現在はOSネイティブ(WindowsはHiper-V、macOSはHypervisor Framework)のハイパーバイザ型の仮想化APIが使われている。
参考
- Windows 10 の Hyper-V の概要 - on https://docs.microsoft.com/ja-jp/virtualization/hyper-v-on-windows/about/
- Hypervisor - on https://developer.apple.com/documentation/hypervisor
- Docker、MacOS X対応の軽量な仮想化ツール「HyperKit」をオープンソースで公開 - on https://www.publickey1.jp/blog/16/docker_hyperkit.html
Kubernetes †
- Google社のエンジニアによって開発されたオープンソースのコンテナオーケストレーションソフトウェア。
- コンテナをPod(小群)という塊によって管理する。
参考
LinuxKit †
コンテナ向けにカスタマイズされたディストリビューションを作成できるツール
参考
コンテナ技術周辺 †
用語 †
OCI(Open Container Initiative) †
- Dockerやコンテナ技術リーダー企業によってコンテナ標準化を行なうために2015年に設立された組織。
- コンテナのフォーマットとラインタイムの業界標準仕様を策定している。
- Amazon, Cisco, Facebook, Google, Huawei, IBM, Intel, Microsoft, Oracle, Red Hat, VMwareなど、業界大手のハイテク企業が参画している。
CRI(Container Runtime Interface) †
- Kubernetesがコンテナを実行するためのAPI標準仕様。
- CRI作成前は、コンテナとKubernetesの間をブリッジプログラムで繋いでいた。CRIにより、Kubernetesでのコンテナ実行をプラガブルで効率的に実行することができるようになった。containerdやCRI-Oなどがある。これは、High-Level Container Runtimeと呼ばれる。
kubelet ---> CRI (High-Level Container Runtime) ---> OCI (Low-Level Container Runtime)
コンテナライクなVM? †
通常コンテナはホストOSカーネルを共有するが、カーネル部分もコンテナのように分離したコンテナのようなVM?のようなものもある。
コンテナ技術のリンク †
- https://speakerdeck.com/makocchi/about-container-runtimes-japan-container-days-v18-dot-04
- https://kubernetes.io/blog/2016/12/container-runtime-interface-cri-in-kubernetes/
- https://pocketstudio.net/2017/10/19/pluggable-runtimes-and-their-impact-translate/
- https://www.publickey1.jp/blog/18/kubernetescontainerd_11cridocker.html
- https://kubernetes.io/blog/2018/05/24/kubernetes-containerd-integration-goes-ga/
参考リンク †
Docker †
- Docker公式 - on http://veoh.com
- docker/cli - on https://github.com/docker/cli
- 忙しい人の5分で分かるDocker 2017年春Ver - on https://www.slideshare.net/zembutsu/5-minuts-docker-2017