VagrantのUbuntu16.04にDocker環境を構築するための方法を、
Dockerの公式に従って最小限に構築する。
(執筆時期:2018年1月27日)
※ VirtualBoxとVagrantはHomebrewでインストール済み
➠ brew cask install virtualbox
➠ brew install vagrant
環境 | バージョン |
---|---|
macOS High Sierra | 10.13.2 |
VirtualBox | 5.2.6 |
Vagrant | 2.0.1 |
Ubuntu16.04の準備と起動
boxはVagrant Cloudの ubuntu/xenial64 を使用する。
以下を実行していくとVagrantでUbuntu16.04環境を構築できる。
# Ubuntu16.04のVagrantファイルを作成する
$ vagrant init ubuntu/xenial64
# Vagrantを起動する
$ vagrant up
# Vagrantにログイン
$ vagrant ssh
Dockerの準備
公式のインストール手順 に従ってそのままコマンドを実行していく。
※ Dockerの準備は vagrant ssh
でログインした状態で行う。
# aptパッケージをアップデート
$ sudo apt-get update
# aptがHTTPS経由でリポジトリを使えるようにパッケージをインストール
$ sudo apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
# Dockerの公式GPG keyを追加
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
# 安定したリポジトリを追加
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
# 再度aptパッケージをアップデート
$ sudo apt-get update
# Dockerをインストール
$ sudo apt-get install -y docker-ce
# ユーザーをDockerグループに追加
$ sudo usermod -aG docker $USER
# Ubuntuを再起動
$ sudo reboot
docker-composeの準備
公式のインストール手順 に従ってそのままコマンドを実行していく。
※ Dockerの準備は vagrant ssh
でログインした状態で行う。
# docker-composeをダウンロード
$ sudo curl -sL https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# docker-composeに実行権限を付与
$ sudo chmod +x /usr/local/bin/docker-compose
補足
以上の設定をシェルスクリプトにまとめてVagrantのprovisionに設定すれば、
vagrant up
や vagrant provision
でDocker環境を構築できる。
Vagrantfile
でprovisionにシェルスクリプトのパスを設定する。
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/xenial64"
config.vm.provision :shell, :inline => "apt-get update"
config.vm.provision :shell, :path => "provision/install_docker.sh"
config.vm.provision :shell, :path => "provision/install_docker-compose.sh"
end
また、以下のようにinlineで直接記述する方法もある。
Vagrant.configure("2") do |config|
config.vm.provision "shell", inline: <<-SHELL
apt-get update
sudo apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
(以下略)
SHELL
end