注意事项

  1. 在新版本的VirtualBox、Vagrant中,Centos 7的box有兼容性问题(2020年文件比较旧),需要升级使用generic/rocky9
    不要再使用下面这个box
    https://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/CentOS-7.box

  2. vagrant-vbguest插件版本太低,有兼容性问题(vagrant-vbguest插件 0.32.0版本中,使用了Ruby 3.2+ 已弃用的 File.exists? 方法(现已改为 File.exist?),导致在 Vagrant 2.4.9(内置 Ruby 3.3.8)中崩溃)

#卸载插件(如已安装)
vagrant plugin uninstall vagrant-vbguest

#重新安装最新版(基本上不会用到,不安装也行)
#vagrant plugin install vagrant-vbguest
vagrant plugin list

安装Rocky 9

#下载文件到VAGRANT_HOME\boxes
vagrant box add generic/rocky9
#需要选择virtualbox

在Windows的Path环境变量中,添加VirtualBox的安装路径,如:D:\VirtualBox

#查看已下载的box
vagrant box list

#删除不再使用的box
vagrant box remove generic/centos7 --box-version 4.1.18
#vagrant box remove generic/centos7

#查看已安装过的服务器
VBoxManage list vms

#有时需要查看VirtualBox的日志
#C:\Users\[用户名]\.VirtualBox

生成vagrant配置文件

vagrant init generic/rocky9

#修改vagrant文件中的网络配置、内存大小
  config.vm.network "public_network"
  config.vm.provider "virtualbox" do |vb|
    vb.memory = "6144"
	vb.cpus = 4
	# 添加这一段,开启 Host I/O Cache
    vb.customize ["storagectl", :id, "--name", "SATA Controller", "--hostiocache", "on"]
  end

启动服务器

vagrant up

#连接服务器
vagrant ssh

#使用sudo切换到root用户(默认root没有密码)
sudo -i

#设置服务器能远程使用用户名、密码登录
vi /etc/ssh/sshd_config
#把PasswordAuthentication no 修改成yes,保存并退出

#重启ssh服务
service sshd restart
exit 

#为root用户设置密码(在vagrant用户下执行)
sudo passwd root

#使用刚设置的密码登录root
su -

Rocky 9配置国内源

cd /etc/yum.repos.d/
sudo mkdir bak
sudo cp *.repo bak/

sed -e 's|^mirrorlist=|#mirrorlist=|g' \
    -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
    -i.bak \
    /etc/yum.repos.d/rocky-*.repo
	
sudo sed -i.bak -e 's|^mirrorlist=|#mirrorlist=|g' \
    -e 's|^#baseurl=https://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
    /etc/yum.repos.d/rocky-extras.repo
	
# 列出所有启用的仓库,检查是否正常
dnf repolist	

sudo dnf clean all
sudo dnf makecache
sudo dnf update -y

安装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	

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io

sudo systemctl start docker  
sudo systemctl enable docker  

docker -v

Docker设置国内镜像加速

sudo mkdir -p /etc/docker  
sudo tee /etc/docker/daemon.json <<-'EOF'  
{  
  "registry-mirrors": ["https://docker.1ms.run", "https://ghcr.geekery.cn"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"  
}  
EOF

重新加载配置项

sudo systemctl daemon-reload
sudo systemctl restart docker

docker run --name nginx -p 80:80 -d nginx

更多推荐