Rocky Linux 环境运行Docker

Rocky Linux作为CentOS的后继者,部署 Docker Engine 方法和 在CentOS 8上安装Docker CE 类似。我的实践环境是阿里云的Rocky Linux 9.4,目标如下:

  • 在云计算厂商的云服务器(虚拟机)使用最基本的操作系统,通过Docker容器化运行一个远程开发环境,方便我在任何时间任何地点都能够远程移动进行开发学习

  • 通过容器化部署来实现一些服务部署,逐步逐步开始落实 Real 中曾经设想过得方案

备注

对于数字游牧,,一个一致都随时可用都工作环境非常重要。我的工作中使用了非常多的不同二手设备,所以我一直在探索如何能够达到远程和本地、租用VPS和自建服务器的性能和经济性平衡。

添加Docker仓库

  • 使用 DNF包管理器 工具在Rocky Linux系统中添加Docker软件仓库:

添加Docker软件仓库
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装docker相关软件
sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin

对于中国大陆用户, 不出意外意外 会看到如下无法访问 *.docker.com 报错:

由于GFW阻塞,安装docker相关软件报错
Docker CE Stable - x86_64                                                                              0.0  B/s |   0  B     00:00
Errors during downloading metadata for repository 'docker-ce-stable':
  - Curl error (35): SSL connect error for https://download.docker.com/linux/centos/9/x86_64/stable/repodata/repomd.xml [OpenSSL SSL_connect: Connection reset by peer in connection to download.docker.com:443 ]
Error: Failed to download metadata for repo 'docker-ce-stable': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried

请参考 Colima 代理 使用 DNF代理 越过长城

另外,阿里云提供的rocky linux直接将软件仓库设置为阿里云自己的镜像网站,一旦配置 DNF代理 会导致反向访问阿里云仓库过于缓慢甚至无法正常使用的问题,所以需要修订 /etc/yum.repos.d 目录下的仓库配置,将阿里云相关的 baseurl 注释掉,恢复默认的 mirrorlist (以下是 rocky.repo 配置修改案例:

修订仓库配置,恢复默认的 mirrorlist
[baseos]
name=Rocky Linux $releasever - BaseOS
mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=BaseOS-$releasever$rltype
#baseurl=http://mirrors.cloud.aliyuncs.com/rockylinux/$releasever/BaseOS/$basearch/os/
...

可以通过以下脚本命令批量修改:

批量修订仓库配置,恢复默认的 mirrorlist
cd /etc/yum.repos.d

for file in rocky-addons.repo rocky-devel.repo rocky-extras.repo rocky.repo; do
	sed -i 's/baseurl=/#baseurl=/g' $file
	sed -i 's/#mirrorlist=/mirrorlist=/g' $file
done

这样使用官方仓库配置(通过mirrorlist找到最匹配仓库服务器)就能够同时满足翻墙访问Docker和RockyLinux仓库的要求了

运行Docker

通过 Systemd进程管理器 启动并配置Docker在操作系统启动时启动:

启动docker
sudo systemctl --now enable docker

(可选)配置非root用户管理docker

为了方便维护,可以设置非root用户来管理docker,即将该用户账号添加到 docker 用户组:

设置非root用户管理docker
# 添加当前用户给予管理docker权限
# 通常只需要执行这句(我只执行这句命令)
sudo usermod -a -G docker $(whoami)

#  添加指定用户给予管理docker权限 
sudo usermod -a -G docker custom-user

完成后用户重新登陆,即使是普通用户账号也能够管理docker

下一步

参考