表題の通り。今までにもそういった環境は何度も試していたのだが、設定でちょっと気になるものを知ったので試してみる。
■ 環境
- CentOS 7
- Vagrant 1.8.4
- Mac OSX El Capitan
■ Vagrant
下記のVagrantfileで`vagrant up`している。
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
end
このまま起動した時点ではもちろんDockerが動いているはずがない。
$ vagrant ssh
Last login: Thu Jul 21 10:12:16 2016 from 10.0.2.2
[vagrant@localhost ~]$ which docker
/usr/bin/which: no docker in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/vagrant/.local/bin:/home/vagrant/bin)
[vagrant@localhost ~]$
[vagrant@localhost ~]$ ps -ef | grep docker
vagrant 1442 1422 0 10:12 pts/0 00:00:00 grep --color=auto docker
[vagrant@localhost ~]$
続いて下記のようにVagrantfileに追記する。
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
config.vm.provision "docker"
end
これは下記ドキュメントにあった。
Docker Provisioner
https://www.vagrantup.com/docs/provisioning/docker.html
VMに対して`provision`を実行する。
$ vagrant provision
==> default: Running provisioner: docker...
default: Installing Docker onto machine...
$
動作しているか確認。
$ vagrant ssh
Last login: Thu Jul 21 10:22:24 2016 from 10.0.2.2
[vagrant@localhost ~]$ which docker
/usr/bin/docker
[vagrant@localhost ~]$
[vagrant@localhost ~]$ ps -ef | grep docker
root 2350 1 0 10:22 ? 00:00:00 /usr/bin/docker daemon -H fd://
root 2353 2350 0 10:22 ? 00:00:00 docker-containerd -l /var/run/docker/libcontainerd/docker-containerd.sock --runtime docker-runc --start-timeout 2m
vagrant 2900 2878 0 10:23 pts/0 00:00:00 grep --color=auto docker
[vagrant@localhost ~]$
[vagrant@localhost ~]$ docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 1.11.2
Storage Driver: devicemapper
Pool Name: docker-253:0-525826-pool
Pool Blocksize: 65.54 kB
Base Device Size: 10.74 GB
Backing Filesystem: xfs
Data file: /dev/loop0
Metadata file: /dev/loop1
Data Space Used: 11.8 MB
Data Space Total: 107.4 GB
Data Space Available: 38.38 GB
Metadata Space Used: 581.6 kB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.147 GB
Udev Sync Supported: true
Deferred Removal Enabled: false
Deferred Deletion Enabled: false
Deferred Deleted Device Count: 0
Data loop file: /var/lib/docker/devicemapper/devicemapper/data
WARNING: Usage of loopback devices is strongly discouraged for production use. Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning.
Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
Library Version: 1.02.107-RHEL7 (2016-06-09)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: null host bridge
Kernel Version: 3.10.0-327.22.2.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 489 MiB
Name: localhost.localdomain
ID: 4E6P:5GS2:6A5R:JBF7:4IIJ:RYGN:WUE2:2ND2:V2KS:D2CL:FWCG:FTT7
Docker Root Dir: /var/lib/docker
Debug mode (client): false
Debug mode (server): false
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
[vagrant@localhost ~]$
なるほど。自身でわざわざインストールする必要がないのか。これは確かに便利そうである。が、Docker for Macや`docker-machine`でほとんど十分であろう。その他の実験的な環境を作る時には重宝しそうなので覚えておくことにしよう。
以上。