使用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]
以上仅个人学习的见解,若有问题,请联系在下即可,加油!