LoginSignup
11
7

More than 5 years have passed since last update.

【Vagrant】Ubuntu16.04にDocker環境を構築する【2018年】

Last updated at Posted at 2018-01-27

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 upvagrant 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
11
7
4

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
11
7