概要
vagrant でお手軽に docker-compose 実行環境が導入できる vagrant-docker-compose プラグインというものがあるようなので使ってみました。
https://github.com/leighmcculloch/vagrant-docker-compose
本記事では nginx コンテナに index.html を配置してブラウザで表示するサンプルを紹介します。
実行環境
- Windows 10 pro
- VirtualBox 5.2.12
- Vagrant 2.1.2
- vagrant-docker-compose 1.3.0
インストール
Vagrantがインストールされた状態で次のコマンドを打ちます。
vagrant plugin install vagrant-docker-compose
フォルダ構成
├─ docker
│ ├─ docker-compose.yml
│ └─ www
│ └─ index.html
└─ Vagrantfile
- dockerフォルダをマウントするので、docker-compose.ymlで使うフォルダ(ここではwww)はdocker配下に置いています。
ファイルの編集
Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
# Ubuntu 16.04を使う場合
config.vm.box = "minimal/xenial64"
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.synced_folder "./docker", "/vagrant/docker"
# docker の設定
# 注)run: "always" が必須
config.vm.provision :docker, run: "always"
# docker-compose の設定
config.vm.provision :docker_compose,
yml: "/vagrant/docker/docker-compose.yml",
compose_version: "1.21.2",
run: "always"
end
docker/docker-compose.yml
version: '2.0'
services:
web:
image: "nginx:1.15.0"
ports:
- '80:80'
volumes:
- ./www:/usr/share/nginx/html
restart: always
docker/www/index.html
<!DOCTYPE html>
<html>
<head>
<title>Hello</title>
</head>
<body>
<h1>Hello from Vagrant Docker Compose</h1>
</body>
</html>
- Vagrantfile
- コメントにも書いていますが、
run: "always"
を書かないと「Couldn't connect to Docker daemon. You might need to install Docker」というエラーが出てしまいます。(参考: #38) -
compose_version
は使用する docker-compose のバージョンです。READMEによるとデフォルトは1.8.0のようなので、現時点での最新バージョン(1.21.2)にしています。
- コメントにも書いていますが、
実行
ターミナルで Vagrantfile
の置いてある場所に移動して↓を実行します。
vagrant up
ブラウザで http://192.168.33.10 にアクセスすると"Hello from Vagrant Docker Compose"が表示されます。