Docker
Docker CE
Docker EE
Linuxカーネルやsystemdなど除くランタイムとアプリ本体をコンテナに封入したものをLinuxの上で実行するコンテナな環境。仮想かといえばファイルやプロセスなんかは仮想かな。 WindowsやMacのLinux VM上でも動作するためLinuxとしてほぼ同じように見える。Windowsなどのファイルもマウントできる。
Windows上で動くWindowsコンテナもあるらしい?
環境作成スクリプト的なものでできている。systemd の代用?
OS(カーネル)は仮想環境上で複数実行しない(Windows, MacではVM1つだけ?)ので軽量、らしい。昔のchroot的なものか。
Linuxカーネル1つで複数imageを裁けるくらいのことはできるか。
基本的に1コンテナごとに1アプリを実行して、複数アプリは別々のコンテナで実行する。
接続はポート変換と仮想アドレス/ダイナミックDNS?、volume(ファイル)マウント?で解決するシンプルな構造?
Docker では1コンテナ毎でしか扱えない、複数コンテナをまとめて管理できるものに Docker Compose (今はplug-inで統合されている)などがある。 コンテナ image はビルド、配布可能。
コンテナ間はDNSっぽい関係で相対指定して繋がるらしい。
OS ( Linux または Win/MacのLinux VM)
Docker Engine ? コンテナ1個単位の管理
コンテナ (複数)
小さい Linux Distribution (image)
プロセス App (1個推奨)
ストレージ
image コンテナの元になるもの Distribution と App、起動スクリプト的なものを封入したもの
volume コンテナのデータを永続化する領域、OSのファイル/ディレクトリをマウントすることもできる
Docker API いろいろ繋がる入り口 unix socket または tcp
Docker CLI コマンドライン用
Docker contextで複数接続先も管理できる
Docker Compose 複数Docker まとめる系
Docker Desktop 全部入り?
Buildah コンテナ生成用
Podman Compose または Docker Compose
Podman Desktop
Kubernetes系Podも対応
Dockerfile が make や ant っぽい位置
イメージ作成コマンドでimageに継ぎ足してimage を作る
コンテナでコマンド(デーモン?)が1つ実行できる
イメージ image
OS込み? なVM image
class っぽい?
コンテナ container
image から個別に実行するVM、Linuxカーネルは1つ、ファイルはコンテナで独立
object っぽい?
docker コマンド systemd の代用かなにか?
Docker Compose
複数コンテナをまとめるもの
Dockerfile から コンテナまで
仮想ネットワークもある
基本はこれぐらいまで?
コンテナイメージはいろいろ公開されている
GitHub ?
Google Container Registry
入門
Docker Compose は pluginではない入門がまだ多めなので注意
docker install
Linux
RedHat系は事前に podman などをアンインストールしておく
$ sudo dnf remove podman runc
$ sudo sh get-docker.sh
Docker CLI が複数の接続先をcontext として管理できるということで複数サーバを操作することもできる
git
Dockerfile は git上のものを指定することもできる
chrootとか