5. Open Cloud Campus
5
Dockerクイックツアー
一般的なサーバ仮想化の分類
物理マシン
物理マシン
ホスト OS
ハイパーバイザ
(カーネルモジュール)
仮想
マシン
ゲスト
OS
VMware vSphere, Xen など
Linux KVM
ハードウェアによる仮想化
(物理マシンにハイパーバイザを内蔵)
ソフトウェアによる仮想化
(物理マシン上にハイパーバイザを導入)
ソフトウェアによる仮想化
(ホスト OS にハイパーバイザ機能を追加)
物理マシン
OS
非仮想化環境
基本的には「物理マシン」と同等の「仮想マシン」を複数
作り出す技術です。
仮想
マシン
ゲスト
OS
仮想
マシン
ゲスト
OS
仮想
マシン
ゲスト
OS
仮想
マシン
ゲスト
OS
仮想
マシン
ゲスト
OS
仮想
マシン
ゲスト
OS
仮想
マシン
ゲスト
OS
ハイパーバイザ(ソフトウェア)
仮想
マシン
ゲスト
OS
仮想
マシン
ゲスト
OS
仮想
マシン
ゲスト
OS
物理マシン
ハイパーバイザ(ファームウェア)
11. Open Cloud Campus
11
Dockerクイックツアー
CentOSイメージをダウンロード
構成情報を確認します。
CentOS6のイメージを公式レジストリからダウンロードします。
# docker info
Containers: 0
Images: 0
Storage Driver: devicemapper
Pool Name: docker-252:3-130516-pool
Data file: /var/lib/docker/devicemapper/devicemapper/data
Metadata file: /var/lib/docker/devicemapper/devicemapper/metadata
Data Space Used: 291.5 Mb
Data Space Total: 102400.0 Mb
Metadata Space Used: 0.7 Mb
Metadata Space Total: 2048.0 Mb
Execution Driver: native-0.2
Kernel Version: 3.14.6-200.fc20.x86_64
# docker search centos
NAME DESCRIPTION STARS..
centos The official build of CentOS. 146
tianon/centos CentOS 5 and 6, created using rinse instea... 22
blalor/centos Bare-bones base CentOS 6.5 image 4
...
# docker pull centos
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos centos6 0c752394b855 3 days ago 124.1 MB
centos latest 0c752394b855 3 days ago 124.1 MB
centos 6.4 539c0211cd76 14 months ago 300.6 MB
イメージ管理には、Device Mapper
ドライバ(Thin-Provisioning)を使用
イメージの保存領域は(最大)100GB
14. Open Cloud Campus
14
Dockerクイックツアー
コンテナのディスクイメージを保存
終了したコンテナのディスクイメージを新規のリポジトリに保存します。
保存したイメージから、新たなコンテナを起動することができます。
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS
PORTS NAMES
fb21d0c069bf centos:centos6 /bin/bash 3 minutes ago Exited (0) 1 seconds ago
boring_bardeen
# docker commit ca1f25132c15 enakai/centos6:traceroute
a0725f4d429fb5c00e47fd9453eea654fc99fe71864d5946a01954ca630cb2e5
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
enakai/centos6 traceroute 44f1d7517217 6 seconds ago 171.6 MB
centos centos6 0c752394b855 3 days ago 124.1 MB
centos latest 0c752394b855 3 days ago 124.1 MB
centos 6.4 539c0211cd76 14 months ago 300.6 MB
# docker run -it enakai/centos6:traceroute /bin/bash
bash-4.1# traceroute --version
Modern traceroute for Linux, version 2.0.14, Nov 11 2010
Copyright (c) 2008 Dmitry Butskoy, License: GPL v2 or any later
bash-4.1# exit
15. Open Cloud Campus
15
Dockerクイックツアー
コンテナのディスクイメージを保存
終了したコンテナで不要なものは、次のコマンドで削除しておきます。
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS
PORTS NAMES
16dd08fefadb enakai/centos6:traceroute /bin/bash 2 minutes ago Exited (0) 2
seconds ago distracted_fermi
fb21d0c069bf centos:centos6 /bin/bash 7 minutes ago Exited (0) 4
minutes ago boring_bardeen
# docker rm 16dd08fefadb
docker r16dd08fefadb
# docker rm fb21d0c069bf
fb21d0c069bf
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
27. Open Cloud Campus
27
Dockerクイックツアー
Dockerfileのビルドとコンテナの起動
コンテナを停止した後、再度、起動する例です。
– 「docker run」は、最初にコンテナを起動した際と同じオプションで、再度、コンテナを作成しま
す。ディスクイメージは停止時に保存してあるものを再利用します。
– 不要になったコンテナは停止した後に、「docker rm」で削除しておきます。
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS
PORTS NAMES
1014c487be4e enakai/httpd:ver1.0 /usr/local/bin/init. About a minute ago Up About a
minute 0.0.0.0:2222->22/tcp, 0.0.0.0:8000->80/tcp web01
# docker stop web01
web01
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS
PORTS NAMES
1014c487be4e enakai/httpd:ver1.0 /usr/local/bin/init. About a minute ago Exited (-1) 2
seconds ago web01
# docker start web01
web01
[root@fedora20 ~]# !curl
curl http://localhost:8000
Hello, World!
# docker stop web01
web01
# docker rm web01
web01
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS
PORTS NAMES