LoginSignup
10
15

More than 5 years have passed since last update.

vagrant-docker-compose プラグインの使い方

Last updated at Posted at 2018-07-12

概要

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"が表示されます。

10
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
15