使用vagrant快速創建本地docker開發環境
文章目錄
在使用vmware或者virtualbox的時候,是不是出現過製作多臺虛擬機的繁瑣,出現過修改鏡像源的麻煩,複製鏡像還要修改ip地址等等,不如寫一個Vagrantfile吧,設置好鏡像源,一鍵安裝,不需要了就直接刪除,老師再也不用擔心我筆記本硬盤不夠了,我也再也不用爲每次創建虛擬機,設置國內鏡像,爲此百度找答案發愁了。
快速安裝vagrant
安裝我們所需要的vagrant plugins
[~]$ vagrant plugin list
vagrant-disksize (0.1.3, global)
vagrant-scp (0.5.7, global)
vagrant-share (1.1.10, global)
vagrant-vbguest (0.24.0, global)
# 插件安裝DEMO,可以選擇不安裝,不過以上幾個插件很方便的
sudo vagrant plugin install --plugin-clean-sources --plugin-source https://gems.ruby-china.com/ vagrant-vbguest
編寫Vagrantfile 文件
# 以centos7爲例,創建比較全面的帶有docker本地鏡像及yum鏡像源的虛擬機,此文件一共創建三臺虛擬機,主要用來學習docker swarm
mkdir centos7
cd centos7
cat >Vagrantfile<<EOF
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.require_version ">= 1.6.0"
boxes = [
{
:name => "manager",
:eth1 => "192.168.205.10",
:mem => "1024",
:cpu => "1"
},
{
:name => "worker1",
:eth1 => "192.168.205.11",
:mem => "1024",
:cpu => "1"
},
{
:name => "worker2",
:eth1 => "192.168.205.12",
:mem => "1024",
:cpu => "1"
}
]
Vagrant.configure(2) do |config|
config.vm.box = "centos7"
config.vm.box_url = "https://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/CentOS-7.box"
boxes.each do |opts|
config.vm.define opts[:name] do |config|
config.vm.hostname = opts[:name]
config.vm.provider "vmware_fusion" do |v|
v.vmx["memsize"] = opts[:mem]
v.vmx["numvcpus"] = opts[:cpu]
end
config.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--memory", opts[:mem]]
v.customize ["modifyvm", :id, "--cpus", opts[:cpu]]
end
config.vm.network :private_network, ip: opts[:eth1]
end
end
config.vm.provision "shell", privileged: true, path: "./setup.sh"
end
EOF
# setup.sh 文件內容,此文件主要爲docker添加國內鏡像源,yum的epel阿里鏡像源 docker-compose阿里鏡像源
cat >setup.sh <<ABC
#/bin/sh
# install some tools
sudo yum install -y git vim gcc glibc-static telnet bridge-utils
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# install docker
sudo yum makecache fast
sudo yum -y install docker-ce
# install docker-compose
sudo yum install -y wget
sudo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
sudo yum makecache fast
sudo yum -y install docker-compose
# start docker service
sudo groupadd docker
sudo gpasswd -a vagrant docker
sudo systemctl start docker
sudo cat > /etc/docker/daemon.json<<EOF
{
"debug": true,
"experimental": false,
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com"
]
}
EOF
sudo systemctl restart docker
ABC
創建虛擬機,等待10-20min即可完成鏡像下載及鏡像自動安裝
#查看當前目錄,必須在剛纔創建的centos7目錄中
pwd
centos7
# 按照Vagrantfile創建虛擬機
vagrant up
進入虛擬機或者查看虛擬機狀態
# 進入虛擬機
vagrant ssh docker-manager
# 查看虛擬機狀態
vagrant status
# 停止虛擬機,不添加則停止當前Vagrantfile中所有虛擬機
vagrant halt [vm_name]
# 刪除銷燬虛擬機,同上
vagrant destroy [vm_name]
以上僅個人學習的見解,若有問題,請聯繫在下即可,加油!