使用vagrant快速创建本地docker开发环境

使用vagrant快速创建本地docker开发环境

在使用vmware或者virtualbox的时候,是不是出现过制作多台虚拟机的繁琐,出现过修改镜像源的麻烦,复制镜像还要修改ip地址等等,不如写一个Vagrantfile吧,设置好镜像源,一键安装,不需要了就直接删除,老师再也不用担心我笔记本硬盘不够了,我也再也不用为每次创建虚拟机,设置国内镜像,为此百度找答案发愁了。

快速安装vagrant

提供安装地址及安装方式mac/win类似

安装我们所需要的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]

以上仅个人学习的见解,若有问题,请联系在下即可,加油!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值