virtualbox安装docker

发布时间 2023-10-07 17:00:17作者: huihui_teresa

Vagrant 安装教程

Vagrant 下载

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

Vagrant 软件安装

一直下一步就行

VirtualBox 安装教程

VirtualBox 下载

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

VirtualBox 安装

一直下一步就行

配置虚拟机默认安装地址

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

01

01

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

环境变量配置

01

安装一个 centos 7 系统

安装 VirtualBox 体系下的 Vagrant Box

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

01

01

下载完后会得到一个 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

01

创建一个虚拟机

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

vagrant init centos7

01

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 = "10240"  # 虚拟机存储大小,mb    
    vb.cpus = 2         # cpu 大小
  end
end

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

vagrant up  

01

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

进入虚拟机

vagrant ssh

01

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

使用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

使用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两台虚拟机。

注意事项

每次启动虚拟机需要使用命令行(cmd)进入 Vagrantfile 文件所在的目录,然后再使用 vagrant up 命令启动虚拟机。

关机同理,使用命令行(cmd)进入 Vagrantfile 文件所在的目录,然后再使用 vagrant halt 命令关闭虚拟机。

本文中 centos7 虚拟机的 Vagrantfile 的存放路径是E:\Vagrantfile\centos7,所以我每次都会用 cmd 进入 E:\Vagrantfile\centos7 这个目录,然后使用 vagrant up 开机,使用 vagrant halt 关机。

安装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 systemctl enable docker.service
 //查看docker版本
 sudo docker version
  • 按上面的步骤安装完毕后,如果pull image的时候如果很慢,可以使用中科大的镜像源
    vi /etc/docker/daemon.json
{
   "registry-mirrors" : ["https://docker.mirrors.ustc.edu.cn"]
}
  • 然后重启docker : service docker restart
  • 开机启动: systemctl enable docker

参考链接

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

安装docker-compose

pip安装

yum -y install epel-release
yum -y install python3-pip
pip3 install --upgrade pip
sudo pip3 install -U docker-compose

docker-compose -v