Vagrant&VirtualBox&docker安装教程

1、环境:

操作系统    windows 10 x64
Vagrant vagrant_2.3.4_windows_amd64.msi
VirtualBox VirtualBox-7.0.4-154605-Win.exe

2、Vagrant 安装教程

2.1 Vagrant 下载

进入下载页面下载对应版本:https://www.vagrantup.com/downloads,外网下载可能比较慢,下载后会得到一个安装程序 vagrant_2.3.4_windows_amd64.msi。

2.2 Vagrant 软件安装

双击运行 vagrant_2.3.4_windows_amd64.msi 进入安装环节。


v1.png

选择安装位置,安装路径最好不带中文路径。


v2.png

安装过程比较漫长,安心等待即刻。
选择 No 不重启
v3.png

安装结束,下面进行环境变量配置,指定 Vagrant 的数据文件存放路径(box、data、gems等)。

2.3 Vagrant 环境变量配置

Vagrant 在执行命令的时候会尝试访问 %userprofile%\.vagrant.d,这个文件夹中会存放 Vagrant 相关的命令,
如果 .vagrant.d 文件夹的存放路径包含中文路径,那么 Vagrant 在使用过程中可能会出错,毕竟是国外的产品,安装路径最好不要包含中文路径。
这里将在环境变量中指定 .vagrant.d 的文件夹路径,避免默认路径中存在中文。
在环境变量中指定 VAGRANT_HOME 配置项,并关联 .vagrant.d 文件夹的位置,
本文配置的路径是:D:\DevSoft\Vagrant\.vagrant.d\。
v4.png

3、VirtualBox 安装教程

3.1 VirtualBox 下载

官方下载地址:https://www.virtualbox.org/wiki/Downloads。

3.2 VirtualBox 安装

双击运行 VirtualBox-7.0.4-154605-Win.exe 进入安装界面:


vb1.png

选择 VirtualBox Application 并修改安装位置,安装路径最好不要携带中文路径。


vb2.png

vb3.png

3.3 配置虚拟机默认安装地址

打开全局设置,配置虚拟机安装地址,默认是存放到 C 盘,这里我改到了E:\VirtualBoxVMs


vb4.png

vb5.png

其他配置按照需求修改即可,VirtualBox 只是一个虚拟机的供应者,后面都是使用 Vagrant 进行操作,很少使用 VirtualBox。

3.4 环境变量配置

vb0.png

4、安装一个 centos 7 系统

4.1 安装 VirtualBox 体系下的 Vagrant Box

Vagrant 管理工具中的系统都是 Box 的概念,类似直接虚拟机管理软件直接使用 iso 镜像文件。
首先到 Vagrant 官网中下载一个 VirtualBox 体系下的 centos/7.box 文件,
官网地址:https://app.vagrantup.com/boxes/search
vb6.png

vb7.png

下载完后会得到一个 box 文件 CentOS-7-x86_64-Vagrant-2004_01.VirtualBox.box,
把它修改个短点的名字方便使用,然后保存备用,这里将它改名为 centos7,存放到 E:\VagrantBox\ 文件夹下,此时它的文件路径为:E:\VagrantBox\centos7.box。
打开命令行窗口(cmd),然后将它添加到 Vagrant 管理的 Box 列表中:

vagrant box add centos7 E:\VagrantBox\centos7.box

centos7 是为 box 取的名字,供后续创建虚拟机。
查看是否添加成功

vagrant box list
vb8.png

4.2 创建一个虚拟机

这里我先创建一个存放 Vagrantfile 的文件夹:E:\Vagrantfile\centos7\,然后打开 cmd 命令行窗口进入这个目录,执行后续命令:
创建虚拟机

vagrant init centos7
vb9.png

centos7 是前面为 box 取的名字,命令执行完后会在文件夹中生成一个 Vagrantfile 文件,可以在里面配置虚拟机相关信息,里面得注释虽然是英文的,但是十分详细,都是基于 Ruby 语法书写的。这里不作展开,只做基本配置,去掉注释文件后的 Vagrantfile:

Vagrant.configure("2") do |config|
  config.vm.box = "centos7"             # box 名称
  config.vm.hostname = "centos7"        # 虚拟机名称
  config.vm.box_check_update = false    # 盒子不检查更新
  config.vm.network "private_network", ip: "192.168.33.10"  # 配置成私有网络,类似主机模式,如果改为public_network就类似于桥接模式,桥接模式网段必须与主机在同一个网段
  # 虚拟机供应者参数配置,相当于在 virtualbox 中配置
  config.vm.provider "virtualbox" do |vb|    
    vb.name = "centos7" # 虚拟机名称    
    vb.gui = false      # 启动机器时显示 VirtualBox GUI    
    vb.memory = "2048"  # 虚拟机存储大小,mb    
    vb.cpus = 2         # cpu 大小
  end
end

完成配置后,下面启动虚拟机contos7,启动过程中可以看到虚拟机的一些基本配置信息:

vagrant up
vb10.png

前面配置的私有IP地址,在宿主机上能够 ping 通,说明启动成功。

4.3 进入虚拟机

vagrant ssh
vb11.png

虚拟机的默认用户是 vagrant , root 用户的密码是 vagrant 。
进入后就可以像 centos7 一样使用命令行操作了,不过使用 cmd 不太方便,推荐使用 Xshell 配合 Xftp 进行操作,都有免费的教育版本。

4.4 使用root登陆

由于vagrant默认是限定了不允许root用户登陆,而且只能vagrant up登陆,很多操作都有权限限制,例如vi /etc/ssh/sshd_config。这就导致了对这个虚拟机没有100%掌控力的感觉,这就不能忍了。所以接下来我要获取root权限,自己想怎么登陆就怎么登陆。
步骤如下:

1、使用vagrant ssh 登录
2、使用 sudo chmod 777 /etc/ssh/sshd_config ,给这个文件添加上可修改的权限
3、使用 vi /etc/ssh/sshd_config 修改这个文件以下几个配置
  port 22 -- 开启登陆端口
  PermitRootLogin yes -- 允许root登陆
  passwordAuthentication yes -- 允许密码登陆
4、修改完后保存重启sshd让配置生效:service sshd restart

4.4 使用Vagrantfile批量创建虚拟机

  • 在一个文件新建一个Vagrantfile文件,把下面内容复制到Vagrantfile内
  • 这里是两节点,如果需要多个节点,在boxes配置数组里面多添加几个就好了
boxes = [
    {
        :name => "centos41",
        :eth1 => "192.168.33.41" ,
        :mem => "1024" ,
        :cpu => "1"
    },
    {
        :name => "centos42",
        :eth1 => "192.168.33.42" ,
        :mem => "1024" ,
        :cpu => "1"
    }
]

Vagrant.configure(2) do |config|
    config.vm.box = "centos7"
    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]]
                v.customize ["modifyvm" , :id , "--name" , opts[:name]]
            end        
            config.vm.network:private_network,ip:opts[:eth1]
        end 
     end
end
  • 进入放置Vagrantfile的,使用vagrant up命令启动
  • 启动成功后在virtualBox可以看到centos41和centos42两台虚拟机。

4.5 注意事项

每次启动虚拟机需要使用命令行(cmd)进入 Vagrantfile 文件所在的目录,然后再使用 vagrant up 命令启动虚拟机。
关机同理,使用命令行(cmd)进入 Vagrantfile 文件所在的目录,然后再使用 vagrant halt 命令关闭虚拟机。
本文中 centos7 虚拟机的 Vagrantfile 的存放路径是E:\Vagrantfile\centos7,所以我每次都会用 cmd 进入 E:\Vagrantfile\centos7 这个目录,然后使用 vagrant up 开机,使用 vagrant halt 关机。

5、安装docker

参考官网的教程

删除之前的版本
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
安装前置工具              
sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
  
# 官方源,网速太慢yum断连,不建议
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 阿里源,国内速度快 (本文设置这个源,安装成功)
$ sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

//安装容器
 sudo yum install docker-ce docker-ce-cli containerd.io 
 //启动docker
 sudo systemctl start docker
 //查看docker版本
 sudo docker version
  • 按上面的步骤安装完毕后,如果pull image的时候如果很慢,可以使用中科大的镜像源
    vi /etc/docker/daemon.json
{
   "registry-mirrors" : ["https://docker.mirrors.ustc.edu.cn"]
}
  • 然后重启docker : service docker restart

6、参考链接

Vagrant 官网地址:https://www.vagrantup.com/
Vagrant Box 地址:https://app.vagrantup.com/boxes/search
VirtualBox 官网地址:https://www.virtualbox.org/
VirtualBox+vagrant搭建root权限,免密登陆的多节点centos虚拟机:https://www.jianshu.com/p/733f72b652c1
Vagrant 与 VirtualBox 的保姆级安装教程:https://blog.csdn.net/qq_44713454/article/details/119943743

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容