プログラマのためのDocker教科書 インフラの基礎知識&コードによる環境構築の自動化 [Kindle]
- 翔泳社 (2015年11月19日発売)
- Amazon.co.jp ・電子書籍 (315ページ)
感想・レビュー・書評
-
2016年にDocker分からんと思って買ったけど途中で詰まって、でも気がついたらいつの間にかDockerというかKubernetesが仕事の基本的な道具になってた2020年で、今読むとすんなり理解できる。
詳細をみるコメント0件をすべて表示 -
先輩からいただいた本、dockerに詳しくなろうと思って読んだ。
特に1部に、インフラの基礎知識がまとめてあったのがよかった。
docker基本コマンド習得以上にインフラ構築の勉強になる良い本でした。
<用語メモ>
- インフラ構築の3段階
Bootstrapping, Configuration, Orchestration
- 仮想化の仕方の3パターン
ホスト型仮想化 -> VirturalBox, VMWare
ハイパーバイザー型仮想化 -> Hyper-V, XenServer(EC2とか)
コンテナ型仮想化 -> FreeBSDJail, Solaris Containers, docker (軽量で高速が特徴)
※ docker for macとかはHyperKitって仮想化環境の中でcontainer作ってるから、ホスト型 + コンテナ型になる?
https://docs.docker.com/docker-for-mac/install/ -
図版も大きいし仕方ないのはわかるが、画像でのレイアウトなのが残念
-
Dockerメモ
▪️コンテナ型仮想化について
ホストOSのリソースを論理的に分割し、複数の区画(コンテナ)で共有して使う仮想化方法。アプリを動作させるのに必要なライブラリ、ミドルウェア、プログラムなどをコンテナ内に含め、あたかもコンテナを個別のサーバのように使うことができるようにしたもの。
ホスト型、ハイパーバイザー型に比べ、オーバーヘッドが少なく、軽量で高速に動作する(ゲストOSを複数動かす必要がない)。
▪️Docker概要
コンテナ仮想化環境でアプリを管理・実行するためのオープンソースのプラットフォーム。Go言語で作られており、Linux上で動作する。クラウド環境でも動作する。
Dockerの基本機能は以下の3つ
1. Dockerイメージを作る機能
2. Dockerコンテナを動かす機能
3. Dockerイメージを公開・共有する機能
1. Dockerイメージを作る機能
Dockerはアプリの実行に必要な、プログラム、ライブラリ、ミドルウェア、OS/NW設定をまとめてDockerイメージを作成する。Dockerイメージの正体は必要なファイル群が格納されたディレクトリ。
2. Dockerコンテナを動かす機能
Dockerがインストールされていれば、Dockerイメージから、コンテナを動かすことができる。1つのイメージから複数のコンテナを起動することもできる。
コンテナの起動、停止、破棄はDockerコマンドにより実施可能。
3. Dockerイメージを公開・共有する機能
DockerHubにより、個人が作成したDockerイメージをGitHub的な感じで自由に公開して共有できる。
Dockerコンポーネント
-Docker Engine
Dockerイメージ生成、コンテナ起動、コマンド実行などを行うDockerのコア機能。
-Docker Kinematic
DockerのGUIツール。
-Docker Registry
Dockerイメージを公開、共有するためのレジストリ。
-Docker Compose
複数のコンテナの構成情報をコードで定義し、実行環境を一元管理する。
-Docker Machine
Docker実行環境をコマンドで自動生成する。
-Docker Swarm
複数のDockerホストをクラスタ化し、管理する。
コンテナの区画化はカーネルのnamespace機能を使用。(namespaceによりホスト上でコンテナを仮想的に隔離)
リソース管理はカーネルのcgroup機能を使用。
(cgroupによりコンテナ内のプロセスにリソース制限をかける)
Docker自体はGitHub上で開発が進められており、contributorの数は1000人超。
Dockerではインフラの構成管理をDockerfileで記述する。DockerコンテナをどのDockerイメージから生成するか等を記述。