nihiko’s blog

新社会人の雑感

VagrantでDocker ComposeまでインストールされたCentOS 7環境を構築する

背景

Docker ComposeまでインストールされたCentOS 7環境を構築したい。簡単に。

方法

Vagrantfileを作成しvagrant upで一撃で起動。

Vagrantfile作成

任意のディレクトリで以下を実行。

$ vagrant init

Vagrantfile編集

先ほど作成したvagrantfileに設定を記述していく。

Vagrant.configure("2") do |config|
~~~
  設定はここに書く
~~~
end
OSを設定

今回はCentOS7。

config.vm.box = "centos/7"

boxとは 仮想マシンを起動する際に必要になるOSのテンプレートみたいなもの
EC2でいうところのAMIみたいな?
このVagrant Cloudなるサイトからとってこれるっぽい。
Vagrant box centos/7 - Vagrant Cloud

Docker & Docker Composeのインストール
 config.vm.provision "shell", inline: <<-SHELL
     sudo yum remove docker docker-common docker-selinux docker-engine
     sudo yum install -y yum-utils device-mapper-persistent-data lvm2
     sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
     sudo yum makecache fast
     sudo yum install -y docker-ce
     sudo systemctl start docker
     curl -L https://github.com/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > docker-compose
     sudo mv docker-compose /usr/local/bin/docker-compose
     sudo chmod +x /usr/local/bin/docker-compose
     SHELL

起動

Vagrantfileが配置してあるディレクトリでvagrant upvmを起動。

SSH接続し確認

Tera TermでSSH接続する場合は

ターミナルででユーザ名やポート、認証キーの場所を確認して接続。

C:\vm\centos7>vagrant ssh-config
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile C:/vm/centos7/.vagrant/machines/default/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL

f:id:nihiko:20190224134515p:plain

f:id:nihiko:20190224134623p:plain

Docker Composeがインストールされているか確認。

[vagrant@localhost ~]$ docker-compose --version
docker-compose version 1.12.0, build b31ff33

これでvagrant upコマンド一つで

Docker ComposeがインストールされたCentOS 7環境が構築できるようになりました。

総括

今回作成したVagrantfileはこちらに配置。

github.com

本当は今回やりたかったが

次はCloudMapperを上記コマンド一つで実行できるようなdocker-compose.ymlを書きたい。