在Vagrant 2.4.9中安装Rocky 9和Docker
注意事项
-
在新版本的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 -
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 = 2end
启动服务器
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-*.reposudo 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-enginesudo 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.iosudo 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 dockerdocker run --name nginx -p 80:80 -d nginx
