vagrant制作安装docker的centos7版本box


virtualbox是一款非常强大的免费虚拟机软件,win下的程序猿想玩玩linux/unix的时候必备的利器。
在这个动不动及分布式、云计算、大数据、集群的时代——好吧,现在还有AI、深度学习、神经网络——各种飞速发展的技术,
开发、测试、实验都会用到linux系统, 但是直接用virtualbox直接玩多少还是有点麻烦。 
vagrant是一个ruby写的,用来创建和部署虚拟化开发环境。支持virtualbox,使用chef创建自动化虚拟环境,爱折腾的程序猿必备。 
 
想了解的话,网上搜索下,入门资料挺多,使用简单。

下面介绍用vagrantfile在centos7上安装docker,当然不想折腾直接下载带docker的centos就ok了。 

下载box: http://www.vagrantbox.es/   用Centos 7 x86_64 minimal installation这个版本,
也可以用这个链接: https://atlas.hashicorp.com/viniciusfs/boxes/centos7/下载。

下载后,将下载的box加到vagrant的box list:
# vagrant box add centos7.2 centos7.2.box 

创建个目录
# mkdir centos7.2
# mkdir centos7.2 /share 
# cd centos7.2  

初始化vagrant配置, 将vagrantfile的内容复制到Vagrantfile里
# vagrant init centos7.2  

启动, 并通过https://get.docker.com安装,安装过程比较久
# vagrant up 

漫长的等待之后,可以连上去看下,docker info的结果
# vagrant ssh 
[vagrant@centos7-docker ~]$ docker info 

可以退出来后,重新加载下, 看看docker后台进程重启后有没自启动
# vagrant reload 

导出box文件,后面想玩,直接用这个box,就可以启动一个系统来
# vagrant package --output centos7.2-docker.box


========================vagrantfile=================================
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
    #设置虚拟机的box
    config.vm.box = "centos7.2"

    #设置虚拟机的主机名
    config.vm.hostname = "centos7-docker"

    #设置主机与虚拟机的共享目录
    config.vm.synced_folder "./share", "/home/vagrant/share"

    #Virtualbox相关配置
    config.vm.provider "virtualbox" do |v|
        #设置虚拟机的名称
        v.name = "centos7-docker"

        #设置虚拟机的内存大小为2G
        v.memory = 2048

        #设置虚拟机的CPU个数
        v.cpus = 2
    end

    #使用shell脚本进行软件安装和配置
    config.vm.provision "shell", inline: <<-SHELL
        #使用163的centos源
        sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
        sudo wget http://mirrors.163.com/.help/CentOS7-Base-163.repo -O /etc/yum.repos.d/CentOS-Base.repo

        #升级包和内核
        sudo yum clean all
        sudo yum makecache #生成缓存
        sudo yum -y update

        #安装docker
        sudo wget -qO- https://get.docker.com | sh

        #启动docker服务
        sudo service docker start

        #测试docker安装结果
        sudo docker run hello-world

        #设置docker服务启动后自运行
        sudo systemctl enable docker

        #添加vagrant用户添加到docker权限组
        sudo usermod -aG docker vagrant

        #清理包
        sudo yum clean all

    SHELL

end
========================vagrantfile=================================

问题:
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
There are errors in the configuration of this machine. Please fix
the following errors and try again:
vm:
* The host path of the shared folder is missing: ./share
原因: 指定了./share目录作为共享目录的话,需要先建好share目录


问题:
$ vagrant up
There is a syntax error in the following Vagrantfile. The syntax error
message is reproduced below for convenience:
D:/vagrant/centos7.2-docker/Vagrantfile:45: can't find string "SHELL" anywhere before EOF
D:/vagrant/centos7.2- docker /Vagrantfile:27: syntax error, unexpected end-of-input, expecting tSTRING_CONTENT or tSTRING_DBEG or tSTRING_DVAR or tSTRING_END
        config.vm.provision "shell", inline:<<-SHELL
                                                    ^
原因: inline:<<-SHELL的:和<<之间需要有空格, <<-和SHELL之间不能有空格








评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

run_zheng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值