使用VirtualBox和Vagrant搭建Docker环境

前言

学习docker之旅第一天——使用VirtualBox和vagrant搭建docker环境。

软件下载

VirtualBox下载链接:选择对应安装的操作系统即可。
在这里插入图片描述

Vagrant下载链接在这里插入图片描述

使用Vagrant安装虚拟机

使用前提

vagrant的使用前提是必须安装好了virtualbox,因为vagrant是在virtualbox中创建虚拟机的。

当vagrant安装好后,在一个空的目录下执行vagrant init centos/7会生成一个Vagrantfile文件:
在这里插入图片描述

查看下文件内容可以看到配置文件就是我们输入的centos/7:
在这里插入图片描述

如果想创建别的系统在初始化vagrant的时候执行就可以了,比如说创建一台ubuntu/16.0系统: vagrant init ubuntu/16.0

初始化完毕后,就执行vagrant up来创建一个虚拟机,它是从vagrant云上拉取一个box,在使用virtualbox创建一台虚拟机:
在这里插入图片描述

打开virtualbox可以看到一台正在运行的虚拟机就是刚才创建的:
在这里插入图片描述

自定义Vagrantfile

使用默认的Vagrantfile创建的虚拟机是没有ip的,Vagrantfile主要包括三个方面的配置:

  • 虚拟机的配置
  • SSH配置
  • Vagrant基础配置
  1. 设置box名称(操作系统类型)

    config.vm.box = "centos/7"
    

    使用这个box创建出来的虚拟机的操作系统就是centos/7的。

  2. 虚拟机(VM)配置

       config.vm.provider "virtualbox" do |vb|
         vb.memory = "1024"
         vb.name = "zzy-centos7"
         vb.cpus = 2
       end
    
  3. 网络配置

    默认情况下,对于Virtualbox而言,Vagrant将使用Virtualbox的NAT网络方式,允许虚拟机访问外部网络,但是不允许外界访问虚拟机,包括主机也ping不通。

    虚拟机的网络配置有两种方式:

    • private_network

      相当于虚拟机和Host机共同组成了一个单独的局域网,外界无法访问该局域网,但是虚拟机可以访问外界,Host机和虚拟机之间也可以互访。

      使用private_network时,可以给虚拟机指定固有的稀有IP:

      Vagrant.configure("2") do |config|
        config.vm.network "private_network", ip: "192.168.0.4"
      end
      

      也可以通过动态分配IP:

      Vagrant.configure("2") do |config|
        config.vm.network "private_network", type: "dhcp"
      end
      
    • public_network

      顾名思义公开网络,只要在同一个网段下都可以访问:

      config.vm.network "public_network"
      
  4. 共享目录

    首先要安装一个插件:

    vagrant plugin install vagrant-vbguest
    

    然后修改配置文件:

    # 第一个参数是主机的目录,第二个参数是虚拟机挂载的目录
    config.vm.synced_folder  "D:/vagrant/data", "/vagrant_data"
    
  5. 端口转发

    将宿主机器上8081端口的访问请求转发到虚拟机的80端口的服务上 :

    config.vm.network :forwarded_port, guest: 80, host: 8081
    
  6. 配置hostname

    config.vm.hostname = "node1"
    

使用Vagrant操作虚拟机

注:vagrant和git一样都要在初始化的那个目录下才能对创建的虚拟机操作。

连接虚拟机

使用vagrant ssh可以连接刚才创建的虚拟机:
在这里插入图片描述

退出虚拟机

使用exit命令:
在这里插入图片描述

查看虚拟机状态

使用命令vagrant status可以看到有一台运行着的虚拟机:
在这里插入图片描述

挂起虚拟机

使用命令vigrant halt可以看到此时虚拟机是挂起状态:
在这里插入图片描述

删除虚拟机

使用命令vagrant destroy:
在这里插入图片描述

在查看virtualbox发现不存在虚拟机了:
在这里插入图片描述

搭建docker环境

手动搭建

使用前边创建的centos虚拟机搭建docker环境:

更换阿里源

卸载旧版本

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

使用官方安装脚本安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

将非root用户添加进docker组中

前边使用vagrant创建的虚拟机默认用户是非root用户:vagrant,将该用户添加进docker组中。
在这里插入图片描述

sudo usermod -aG docker vagrant
sudo gpasswd -a vagrant docker
newgrp docker

启动docker

sudo systemctl start docker

查看docker 版本:

docker version

经典hello-world

sudo docker run hello-world

使用vagrantfile配置搭建

vagrantfile是可配置的,我们可以通过配置shell脚本使vagrant在创建完虚拟机后执行shell语句:
在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一切如来心秘密

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

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

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

打赏作者

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

抵扣说明:

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

余额充值