12. Dockerとは何であるかの定義
12
“Docker allows you to package an application
with all of its dependencies into a standardized
unit for software development.”
www.docker.com
全ての依存関係をパッケージ化して、コンテナとして動かす
まずは、Dockerの「定義」からみていきましょう。
これは Docker のマスコットキャラクターで
名前は Moby です。
モビー
ドッカー
ドッカー
13. Dockerとは何であるかの定義
13
“Docker allows you to package an application
with all of its dependencies into a standardized
unit for software development.”
www.docker.com
全ての依存関係をパッケージ化して、コンテナとして動かす
Dockerはプログラム実行に必要な「すべての依存関係」をパッケージにします。バイナリやライブラリ、設定ファイル等。
14. Dockerとは何であるかの定義
14
“Docker allows you to package an application
with all of its dependencies into a standardized
unit for software development.”
www.docker.com
全ての依存関係をパッケージ化して、コンテナとして動かす
パッケージするのは、/ (ルート) ディレクトリ以下、 /bin や /etc や /var などの「Linuxファイルシステム」。
それと、「メタ情報」と呼ぶ、どのプロセスを自動実行するか、ポートを公開するなどの汎用情報も入ります。
Linuxファイルシステムを
15. Dockerとは何であるかの定義
15
“Docker allows you to package an application
with all of its dependencies into a standardized
unit for software development.”
www.docker.com
全ての依存関係をパッケージ化して、コンテナとして動かす
Dockerイメージとして
Linuxファイルシステムを
Dockerは「Dockerイメージ」にパッケージ化。これは、仮想マシンの(ディスク)イメージとは全く異なる概念。
Dockerイメージとは、正確には「Dockerコンテナの実行に必要な、命令の入ったテンプレート」なのです。
16. Dockerとは何であるかの定義
16
“Docker allows you to package an application
with all of its dependencies into a standardized
unit for software development.”
www.docker.com
全ての依存関係をパッケージ化して、コンテナとして動かす
Dockerイメージとして
Linuxファイルシステムを
そして、イメージの中にあるファイルを、「コンテナ」として「動かす」のが新しい概念です。コンテナとして動かすとは・・・?
43. Dockerはサーバ・クライアント型モデル
43
OS ( Linux )
物理/仮想サーバ
Docker エンジン
( dockerd デーモン )
Linux kernel
コンテナ コンテナ コンテナ
リモート
API
docker
クライアント TCP あるいは
Unix ソケットドメイン
containerd
Runtime: runC (OCI規格準拠)
・docker コマンド
Linux, Mac OS X, Windows
・Kitematic (GUI)
Mac OS X, Windows
・Docker Compose
・Docker Swarm
Dockerコンテナを管理するDockerエンジン(dockerd)はAPIで制御でき、
通常は「docker」という名称のコマンドラインで、「docker run hello-world」のように実行します。