ツナワタリマイライフ

日常ネタから技術ネタ、音楽ネタまで何でも書きます。

vagrantでdocker環境を爆速で構築する

はじめに

いろいろあってDocker再勉強中。本買いました。

Docker

Docker

Docker環境構築

この本を読みながらいろいろ動かす環境が必要です。Macなのでdocker for macでもいいんですが、異なるアプリケーションを構築することを考えると、VM上にdocker環境を作っておいたほうがなにかと便利かなと思いました。

というわけでvagrant + virtualboxを使ってdocker環境を構築します。

昔はCentOS72のイメージに、ansibleでdockerをインストールするplaybookを書いてたんですが、まぁよく考えるとdocker入りのboxイメージ、絶対あるよね。

app.vagrantup.com

というわけでさっそくVagrantfileを書いてやります。

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "envimation/ubuntu-xenial-docker"

  config.vm.define :docker do | docker |
    docker.vm.hostname = "docker"
    docker.vm.network :private_network, ip: "192.168.33.100"#, virtualbox__intnet: "intnet"
  end

end

vagrant upします

take@MacBook-Air ~/v/docker> vagrant up
Bringing machine 'docker' up with 'virtualbox' provider...
==> docker: Box 'envimation/ubuntu-xenial-docker' could not be found. Attempting to find and install...
    docker: Box Provider: virtualbox
    docker: Box Version: >= 0
==> docker: Loading metadata for box 'envimation/ubuntu-xenial-docker'
    docker: URL: https://vagrantcloud.com/envimation/ubuntu-xenial-docker
==> docker: Adding box 'envimation/ubuntu-xenial-docker' (v1.0.0-1500167675) for provider: virtualbox
    docker: Downloading: https://app.vagrantup.com/envimation/boxes/ubuntu-xenial-docker/versions/1.0.0-1500167675/providers/virtualbox.box
==> docker: Successfully added box 'envimation/ubuntu-xenial-docker' (v1.0.0-1500167675) for 'virtualbox'!
==> docker: Importing base box 'envimation/ubuntu-xenial-docker'...
==> docker: Matching MAC address for NAT networking...
==> docker: Checking if box 'envimation/ubuntu-xenial-docker' is up to date...
==> docker: Setting the name of the VM: docker_docker_1500186086097_14251
==> docker: Clearing any previously set network interfaces...
==> docker: Preparing network interfaces based on configuration...
    docker: Adapter 1: nat
    docker: Adapter 2: hostonly
==> docker: Forwarding ports...
    docker: 22 (guest) => 2222 (host) (adapter 1)
==> docker: Booting VM...
==> docker: Waiting for machine to boot. This may take a few minutes...
    docker: SSH address: 127.0.0.1:2222
    docker: SSH username: vagrant
    docker: SSH auth method: private key
    docker: Warning: Remote connection disconnect. Retrying...
    docker: 
    docker: Vagrant insecure key detected. Vagrant will automatically replace
    docker: this with a newly generated keypair for better security.
    docker: 
    docker: Inserting generated public key within guest...
    docker: Removing insecure key from the guest if it's present...
    docker: Key inserted! Disconnecting and reconnecting using new SSH key...
==> docker: Machine booted and ready!
==> docker: Checking for guest additions in VM...
==> docker: Setting hostname...
==> docker: Configuring and enabling network interfaces...
==> docker: Mounting shared folders...
    docker: /vagrant => /Users/take/vagrant/docker

初回はimageをpullするのに少し時間がかかります。

sshします。

take@MacBook-Air ~/v/docker> vagrant ssh
Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-83-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

docker入ってます。

vagrant@docker:~$ docker -v
Docker version 17.06.0-ce, build 02c1d87

おわりに

また中身のない記事を書いてしまいましたが、dockerについてこれからちょいちょい記事があがる予定。あと初学者向けのドキュメントも作ろうかと思ってるので、できたらまた公開します。

vagrant fileはgithubにコミットしました。

use docker box · takeshe12/vagrant@004ddc0 · GitHub