vagrant的使用&使用vagrant创建虚拟机&安装docker&下载好的box文件

本文详细介绍了如何使用Vagrant创建虚拟机,包括离线下载Vagrant box、配置Vagrantfile以安装Docker、解决vagrant up报错问题,以及如何打包和自定义虚拟机box。内容涵盖Vagrant命令、Vagrantfile的使用,以及VirtualBox的功能,如将img文件转换为虚拟机文件。
摘要由CSDN通过智能技术生成

vagrant 是什么

  • 这是一个快速创建虚拟机的工具,能帮助我们快速的创建不同版本的虚拟机。支持多个版本的操作系统:mac、windows。比如可以通过vagrant 相关命令 给 virtual box 、vmware 创建出虚拟机。默认不配置是给virtual box 创建虚拟机。

  • 拿VirtualBox举例,VirtualBox会开放一个创建虚拟机的接口,Vagrant会利用这个接口创建虚拟机,并且通过Vagrant来管理,配置和自动安装虚拟机。

相关网址

vagrant cloud 可以查到vagrant 提供的box

image-20200603171327534

vagrant download

virtual box download

vagrant document

环境要求

  • 安装对应操作系统版本的Vagrant
  • 安装对应操作系统版本的Virtual Box

vagrant 命令

Vagrantfile 相关

# vagrant init [options] [name [url]]

# 不指定box 的名字,需要后面修改Vagrantfile 指定box 的信息(可以去vagrant cloud 查看)
$ vagrant init

# 指定box 的名字,这个名字必须是vagrant cloud 里面有的,乱写是没用的
$ vagrant init centos/7

# vagrant init 的效果是在当前文件夹下面创建出一个Vagrantfile 的文件,
# 这个文件使我们启动的虚拟机的配置文件。

box相关

# 自己下载好之后,添加到vagrant 中,添加到vagrant 的名字 centos/7 , 添加的是哪个box(推荐使用这种方式)
$ vagrant box add centos/7 /Users/haitao/Downloads/virtualbox.box
# 查看当前安装了那些box
$ vagrant box list 
# 删除vagrant box
$ vagrant box remove

虚拟机相关

# 根据当前目录下的Vagrantfile 启动虚拟机
$ vagrant up

# 根据当前目录下的Vagrantfile 启动虚拟机,并执行provision里面的指令
# 因为里面的指令只有在第一次up 的时候会执行。
$ vagrant up --provision

# 根据当前目录下的Vagrantfile 进入虚拟机(交互模式)
$ vagrant ssh

# 根据当前目录下的Vagrantfile 关闭虚拟机
$ vagrant halt

# 根据当前目录下的Vagrantfile 暂停虚拟机
$ vagrant suspend

# # 根据当前目录下的Vagrantfile 销毁虚拟机
$ vagrant destroy

# 根据当前目录下的Vagrantfile 重启虚拟机
$ vagrant reload

# 根据当前目录下的Vagrantfile 重启虚拟机的时候执行Vagrantfile 里面的provision 的指令
# 默认是vagrant up 的时候启动一次
$ vagrant reload 一provision

# 执行Vagrantfile 里面的provision 的指令
$ vagrant provission

# 查看当前虚拟机的状态
$ vagrant status

# 打包虚拟机
$ vagrant package --base xx --output ./xx.box

Vagrantfile 文件的说明

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

Vagrant.configure("2") do |config|
 
  # box 的标识,可以去这个网址查看
  # boxes at https://vagrantcloud.com/search.
  config.vm.box = "centos/7"

  
  # 是否检查更新box
  # config.vm.box_check_update = false

  # 端口转发,将虚拟机的80,映射成物理主机的8080
  # config.vm.network "forwarded_port", guest: 80, host: 8080

  # 端口转发还可以指定 映射到物理主机的那个ip上
  # config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"

  # 这个可以理解成设置静态ip,ip随便怎么写都可以。
  config.vm.network "private_network", ip: "192.168.66.10"
  
  # 这个也是静态ip,但是设置了这个选项,执行vagrant up 的时候,会让你选择使用物理主机的那个网卡作用桥接的网卡。
  # 然后我们设置的ip 必须使我们选择的网卡的网段内的ip地址
  # config.vm.network "public_network",ip:"192.168.10.110"

  # 挂载目录到虚拟机中
  # config.vm.synced_folder "../data", "/vagrant_data"

 
  # 设置 虚拟机提供商的信息,默认是virtualbox。就是指定给那个虚拟机软件创建虚拟机
  # config.vm.provider "virtualbox" do |vb|
  #   # Display the VirtualBox GUI when booting the machine
  #   vb.gui = true
  #
  #   # Customize the amount of memory on the VM:
  #   vb.memory = "1024"
  # end
  
  # 虚拟机启动的时候会执行里面的命令
  # config.vm.provision "shell", inline: <<-SHELL
  #   apt-get update
  #   apt-get install -y apache2
  # SHELL
end

离线下载vagrant box

参考链接

国内镜像下载

  • CentOS 6/7/8 修改链接中的版本号可以下载不同版本 http://mirrors.ustc.edu.cn/centos-cloud/centos/6/vagrant/x86_64/images/
  • Ubuntu Server 14.04 https://mirrors.ustc.edu.cn/ubuntu-cloud-images/server/vagrant/trusty/current/
  • Ubuntu Server 16.04 https://mirrors.ustc.edu.cn/ubuntu-cloud-images/server/xenial/current/
  • Ubuntu Server 18.04 https://mirrors.ustc.edu.cn/ubuntu-cloud-images/server/bionic/current/
  • Ubuntu Server 20.04 http://mirrors.ustc.edu.cn/ubuntu-cloud-images/focal/current/

官方直接下载

  • Debian 8 https://app.vagrantup.com/debian/boxes/jessie64/versions/8.11.1/providers/virtualbox.box
  • Debian 9 https://app.vagrantup.com/debian/boxes/stretch64/versions/9.12.0/providers/virtualbox.box
  • Debian 10 https://app.vagrantup.com/debian/boxes/buster64/versions/10.4.0/providers/virtualbox.box
  • laravel/homestead https://app.vagrantup.com/laravel/boxes/homestead/versions/9.5.1/providers/virtualbox.box

将离线下载好的box安装到vagrant

$ vagrant box add centos/7 /Users/haitao/Downloads/virtualbox.box

实操

添加离线下载好的box 到vagrant中

$ vagrant box add centos/7 /Users/haitao/Downloads/镜像/virtualbox.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'centos/7' (v0) for provider:
    box: Unpacking necessary files from: file:///Users/haitao/Downloads/%E9%95%9C%E5%83%8F/virtualbox.box
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值