構成
centos7
├ docker-compose.yml
├ docker
│ ├ Docker用コンテンツ・設定など
└ Vagrantfile
Vagrantインストール
macOS用のdmgをダウンロード
Download Vagrant
初期設定
ここでは CentOS7 を作成する
$ mkdir vagrant
$ cd vagrant
$ vagrant init centos/7
Vagrantfile が作成される
以後はこのディレクトリで操作する
vagrant 起動
$ vagrant up
VirtualBox の CentOS7 が起動
初回はCentOS7イメージをダウンロード&インストール
$ vagrant box list
centos/7 (virtualbox, 1905.1)
vagrant 停止
$ vagrant halt
vagrant 再起動
$ vagrant reload
仮想マシン破棄
$ vagrant destroy
ネットワークブリッジ
固定IPも設定できるが、とりあえず DHCP でBridgeで設定する
config.vm.network "public_network"
ちなみにIP固定は
config.vm.network "public_network, ip: "IPアドレス"
Vagrant を再起動すると、どのネットーワークか聞かれるので、利用したい番号を入力
$ vagrant reload
==> default: Checking if box 'centos/7' version '1905.1' is up to date...
==> default: Clearing any previously set network interfaces...
==> default: Available bridged network interfaces:
1) en0: Wi-Fi (AirPort)
2) p2p0
3) awdl0
4) en3: Thunderbolt 1
5) en1: Thunderbolt 2
6) en4: Thunderbolt 3
7) en2: Thunderbolt 4
8) bridge0
9) en5: USB Ethernet(?)
==> default: When choosing an interface, it is usually the one that is
==> default: being used to connect to the internet.
default: Which interface should the network bridge to
ネットーワークを指定
ブリッジするネットーワークがわかっている場合は、Vagrantfile で指定できる(名称は筐体によって異なる)
config.vm.network "public_network", bridge: "en0: Wi-Fi (AirPort)"
SSH接続
$ vagrant ssh
OS確認
$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
root & vagrantユーザ
sudo
$ sudo su
パスワード不要 ※sudoにはパスワードは設定しない事
su
$ su
パスワードはvagrant
vagrant
$ su vagrant
パスワードはvagrant
ifconfigインストール
デフォルトでは ifconfig が利用できないのでインストール
# yum install net-tools
ifconfig で確認すると DHCPで IP が割り振られている
$ ifconfig
eth1: flags=4163 mtu 1500
inet 192.168.11.9 netmask 255.255.255.0 broadcast 192.168.11.255
DockerCompose インストール
Vagrantで docker-compose を起動する場合、vagrant-docker-compose が必要
$ vagrant plugin install vagrant-docker-compose
VirtualBoxイメージのメモリ&CPU設定
Vagrantfile ファイルに記述
config.vm.provider "virtualbox" do |vb|
vb.memory = "2048"
vb.cpus = "2"
end
共有フォルダ設定
ホストOS(Mac)とゲストOS(VirutalBox上のOS)ディレクトリを共有する場合 vagrant-vbguest が必要
VirtualBox での共有ディレクトリと同じで、
mount -t vboxsf -o uid=ユーザ,gid=ユーザ,dmode=0777,fmode=0666 共有フォルダ名 マウントパス
といった Vagrantfile ファイルに基づいて設定してくれる
vagrant-vbguest インストール
$ vagrant plugin install vagrant-vbguest
$ vagrant vbguest
$ vagrant vbguest --status
[default] GuestAdditions 6.0.10 running --- OK.
Vagrantfile 設定
共有ディレクトリ vagrant のパーミッションを変更する
config.vm.synced_folder ".", "/vagrant", mount_options: ['dmode=775','fmode=666']
vagrant plugin 確認
$ vagrant plugin list
vagrant-docker-compose (1.3.0, global)
vagrant-vbguest (0.19.0, global)
Vagrantfile 設定
config.vm.synced_folder "./docker", "/vagrant/docker"