Vagrant (Ubuntu) に Docker, Docker Compose インストール
概要
開発環境構築用に作成した、
Vagrant (Ubuntu) に Docker と Docker Compose をインストールする手順をまとめました。
Vagrantfile 作成
かなりシンプルにしてます。
- Vagrantfile
 
1  | # -*- mode: ruby -*-  | 
vagrant provision で docker compose をインストールすることも可能ですが
vagrant ならではの provision だと他環境で利用できない為、OS 上でインストールする方針です。
VM 起動
1  | MacOS%$ vagrant up  | 
Vagrant Ubuntu 環境情報確認
1  | vagrant%$ lsb_release -a  | 
カーネルバージョン確認
1  | vagrant%$ uname -r  | 
カーネルバージョンが 3.10 より低いとバグを引き起こす危険性があるので NG。
別のカーネルバージョンの高い box を使用しましょう。
古いバージョンをアンインストール
1  | vagrant%$ sudo apt-get remove docker docker-engine  | 
extra パッケージインストール
Docker に aufs ストレージを使用許可する為です。
1  | vagrant%$ sudo apt-get update  | 
Docker インストール
1  | // Docker インストール  | 
Docker Compose インストール
1  | vagrant%$ curl -L "https://github.com/docker/compose/releases/download/1.12.0/docker-compose-$(uname -s)-$(uname -m)" > ~/docker-compose  | 
一度ログアウトし再度ログイン
1  | vagrant%$ exit  | 
メモリとスワップ利用量の調整
Docker を使用していない時にメモリのオーバーヘッドとパフォーマンス劣化を低減させる様、
GRUB (GRand Unified Bootloader: グラブ or ジーラブ) に設定する必要があります。
- grub 設定
 
1  | vagrant%$ sudo vi /etc/default/grub  | 
- GRUB (GRand Unified Bootloader: グラブ or ジーラブ) 更新
 
1  | vagrant%$ sudo update-grub  | 
以上で準備完了です ♪
早速試してみる
簡単なチュートリアルとして nginx コンテナを立ててみます。
1  | vagrant%$ docker run --rm -p 80:80 nginx:mainline-alpine  | 
ブラウザアクセス
ローカルの Mac からブラウザでアクセス
※192.168.35.101 … Vagrant で指定した private ip
問題なく Welcome ページが表示されました。
先程のログに以下のようにアクセスログが出力されるのがわかります。
1  | 192.168.35.1 - - [13/Apr/2017:10:45:46 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36" "-"  | 
MacOS → Vagrant → Docker
とアクセスできるようになりました ♪
追記
今回作成した Box を Vagrant Cloud に置きました。
https://atlas.hashicorp.com/kenzo0107/boxes/ubuntu14.04.5LTS-docker-dockercompose/
こちら設定を元にこれから様々な環境構築を記載していきたいと思います ♪
参照
Vagrant (Ubuntu) に Docker, Docker Compose インストール
https://kenzo0107.github.io/2017/04/12/2017-04-13-install-docker-and-docker-compose-on-vagrant/
