龙蜥Anolis OS 8安装docker

1,178 阅读9分钟

什么是Anolis OS

Anolis OS 8 是 OpenAnolis 社区推出的完全开源、中立、开放的发行版,它支持多计算架构,也面向云端场景优化,兼容 CentOS 软件生态。Anolis OS 8 旨在为广大开发者和运维人员提供稳定、高性能、安全、可靠、开源的操作系统服务。

购买过阿里云服务器的用户应该知道,服务器可选的操作系统就有Alibaba Cloud Linux 3,它就是Anolis OS的商业版。Alibaba Cloud Linux 3是阿里云推出的基于Anolis OS为阿里云基础设施定制优化的Linux发行版,在继承Anolis OS兼容RHEL/CentOS 8 生态的同时,搭载最新的Linux kernel 5.10 LTS并搭配GCC 10.2/Glibc 2.32,为云上应用程序提供Linux社区最新的增强功能。通过对内核、工具链、上层软件包等进行了全方位的优化,使Nginx、Redis、Mysql等主流E2E应用在各方面性能相比CentOS 8提升10%~40%;与阿里云ACK、ECS等云产品做垂直优化,在保障稳定性的同时得到最好的性能,为阿里云用户提供最好的阿里云体验。在给用户提供更新的操作系统功能的同时,保持阿里云操作系统一贯的高性能、安全、稳定的风格,并免费提供长达10年的超长生命周期支持服务,给用户提供阿里云上的最佳操作系统体验,同时也会将产品沉淀的能力回馈到OpenAnolis龙蜥社区。

什么是docker

Docker 是一个开源的容器化平台,它能够让开发者将应用程序及其依赖项打包到一个可移植的容器中,然后可以在任何支持 Docker 的环境中轻松地部署和运行这些容器,实现快速交付、测试和部署应用程序等功能。 www.docker.com/

开始安装

  1. 环境
  • AnolisOS版本8.9, 使用root用户
[root@localhost ~]# cat /etc/os-release 
NAME="Anolis OS"
VERSION="8.9"
ID="anolis"
ID_LIKE="rhel fedora centos"
VERSION_ID="8.9"
PLATFORM_ID="platform:an8"
PRETTY_NAME="Anolis OS 8.9"
ANSI_COLOR="0;31"
HOME_URL="https://openanolis.cn/"

2. 卸载旧版本

在安装 Docker Engine 之前,你需要卸载任何冲突的软件包。

你的 Linux 发行版可能提供非官方的 Docker 软件包,它们可能与 Docker 提供的官方软件包冲突。 在安装官方版本的 Docker Engine 之前,必须卸载这些软件包。

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

yum 可能会报告您没有安装这些软件包。

卸载 Docker 时,存储在 /var/lib/docker/ 中的映像、容器、卷和网络不会自动移除。

  1. 安装

安装方式有很多种:

  • 您可以设置 Docker 的rpm repository并从其中进行安装,以方便安装和升级任务。
  • 您可以下载 RPM 离线软件包,手动安装,并完全手动管理升级。 这在一些情况下非常有用,比如在无法访问互联网的空气屏蔽系统上安装 Docker。

下面演示使用 rpm repository在线安装

更新yum

yum -update-y, --assumeyes       全部问题自动应答为是

安装基础依赖

yum install -y yum-utils device-mapper-persistent-data lvm2

添加docker镜像源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

创建本地的 yum 缓存

yum makecache --timer--timer 记录下此次操作所花费的时间,并将这个时间信息显示出来

安装Docker Engine

yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

会报错:

Docker CE Stable - x86_64                                                                        247 kB/s |  66 kB     00:00    
错误:
 问题 1: 安装的软件包的问题 podman-4:4.9.4-15.0.1.module+an8.9.0+11263+d08f452f.x86_64
  - package podman-4:4.9.4-15.0.1.module+an8.9.0+11263+d08f452f.x86_64 from @System requires runc >= 1.0.0-57, but none of the providers can be installed
  - package podman-3:4.6.1-8.0.1.module+an8.9.0+11183+7cdff43b.x86_64 from AppStream requires runc >= 1.0.0-57, but none of the providers can be installed
  ...
  ...
  - package podman-catatonit-4:4.9.4-15.0.1.module+an8.9.0+11263+d08f452f.x86_64 from AppStream requires podman = 4:4.9.4-15.0.1.module+an8.9.0+11263+d08f452f, but none of the providers can be installed
  - package podman-catatonit-4:4.9.4-15.0.1.module+an8.9.0+11263+d08f452f.x86_64 from @System requires podman = 4:4.9.4-15.0.1.module+an8.9.0+11263+d08f452f, but none of the providers can be installed
  - package podman-4:4.9.4-15.0.1.module+an8.9.0+11263+d08f452f.x86_64 from AppStream requires runc >= 1.0.0-57, but none of the providers can be installed
  - package podman-4:4.9.4-15.0.1.module+an8.9.0+11263+d08f452f.x86_64 from @System requires runc >= 1.0.0-57, but none of the providers can be installed
(尝试在命令行中添加 '--allowerasing' 来替换冲突的软件包 或 '--skip-broken' 来跳过无法安装的软件包 或 '--nobest' 来不只使用软件包的最佳候选)

按提示信息添加参数,重新执行

yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin --allowerasing

问题解决

上次元数据过期检查:0:00:48 前,执行于 2024年11月14日 星期四 10时13分31秒。
依赖关系解决。
=================================================================================================================================
 软件包                          架构         版本                                                  仓库                    大小
=================================================================================================================================
安装:
 containerd.io                   x86_64       1.6.32-3.1.el8                                        docker-ce-stable        35 M
     替换  runc.x86_64 1:1.1.12-5.0.1.module+an8.9.0+11261+8fb088a9
 docker-buildx-plugin            x86_64       0.14.0-1.el8                                          docker-ce-stable        14 M
 docker-ce                       x86_64       3:26.1.3-1.el8                                        docker-ce-stable        27 M
 docker-ce-cli                   x86_64       1:26.1.3-1.el8                                        docker-ce-stable       7.8 M
 docker-compose-plugin           x86_64       2.27.0-1.el8                                          docker-ce-stable        13 M
安装依赖关系:
 libcgroup                       x86_64       0.41-19.el8                                           BaseOS                  68 k
安装弱的依赖:
 docker-ce-rootless-extras       x86_64       26.1.3-1.el8                                          docker-ce-stable       5.0 M
移除依赖的软件包:
 buildah                         x86_64       2:1.33.10-1.module+an8.9.0+11263+d08f452f             @AppStream              31 M
 cockpit-podman                  noarch       84.1-1.module+an8.9.0+11261+8fb088a9                  @AppStream             682 k
 containers-common               x86_64       2:1-82.0.1.module+an8.9.0+11261+8fb088a9              @AppStream             576 k
 podman                          x86_64       4:4.9.4-15.0.1.module+an8.9.0+11263+d08f452f          @AppStream              52 M
 podman-catatonit                x86_64       4:4.9.4-15.0.1.module+an8.9.0+11263+d08f452f          @AppStream             794 k

事务概要
=================================================================================================================================
安装  7 软件包
移除  5 软件包

总下载:102 M
确定吗?[y/N]: y
下载软件包:
(1/7): libcgroup-0.41-19.el8.x86_64.rpm                                                          1.0 MB/s |  68 kB     00:00    
(2/7): docker-buildx-plugin-0.14.0-1.el8.x86_64.rpm                                               18 MB/s |  14 MB     00:00    
(3/7): docker-ce-cli-26.1.3-1.el8.x86_64.rpm                                                      10 MB/s | 7.8 MB     00:00    
(4/7): docker-ce-26.1.3-1.el8.x86_64.rpm                                                          17 MB/s |  27 MB     00:01    
(5/7): docker-ce-rootless-extras-26.1.3-1.el8.x86_64.rpm                                          13 MB/s | 5.0 MB     00:00    
(6/7): containerd.io-1.6.32-3.1.el8.x86_64.rpm                                                    17 MB/s |  35 MB     00:02    
(7/7): docker-compose-plugin-2.27.0-1.el8.x86_64.rpm                                              21 MB/s |  13 MB     00:00    
---------------------------------------------------------------------------------------------------------------------------------
总计                                                                                              44 MB/s | 102 MB     00:02     
Docker CE Stable - x86_64                                                                         44 kB/s | 1.6 kB     00:00    
导入 GPG 公钥 0x621E9F35:
 Userid: "Docker Release (CE rpm) <docker@docker.com>"
 指纹: 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
 来自: https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
确定吗?[y/N]: y
导入公钥成功
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
  准备中  :                                                                                                                  1/1 
  运行脚本: docker-compose-plugin-2.27.0-1.el8.x86_64                                                                        1/1 
  安装    : docker-compose-plugin-2.27.0-1.el8.x86_64                                                                       1/13 
  运行脚本: docker-compose-plugin-2.27.0-1.el8.x86_64                                                                       1/13 
  安装    : docker-buildx-plugin-0.14.0-1.el8.x86_64                                                                        2/13 
  运行脚本: docker-buildx-plugin-0.14.0-1.el8.x86_64                                                                        2/13 
  安装    : docker-ce-cli-1:26.1.3-1.el8.x86_64                                                                             3/13 
  运行脚本: docker-ce-cli-1:26.1.3-1.el8.x86_64                                                                             3/13 
[sss_cache] [sysdb_domain_cache_connect] (0x0010): DB version too old [0.23], expected [0.24] for domain implicit_files!
Higher version of database is expected!
In order to upgrade the database, you must run SSSD.
Removing cache files in /var/lib/sss/db should fix the issue, but note that removing cache files will also remove all of your cached credentials.
Could not open available domains
[sss_cache] [sysdb_domain_cache_connect] (0x0010): DB version too old [0.23], expected [0.24] for domain implicit_files!
Higher version of database is expected!
In order to upgrade the database, you must run SSSD.
Removing cache files in /var/lib/sss/db should fix the issue, but note that removing cache files will also remove all of your cached credentials.
Could not open available domains

  安装    : containerd.io-1.6.32-3.1.el8.x86_64                                                                             4/13 
  运行脚本: containerd.io-1.6.32-3.1.el8.x86_64                                                                             4/13 
  运行脚本: libcgroup-0.41-19.el8.x86_64                                                                                    5/13 
[sss_cache] [sysdb_domain_cache_connect] (0x0010): DB version too old [0.23], expected [0.24] for domain implicit_files!
Higher version of database is expected!
In order to upgrade the database, you must run SSSD.
Removing cache files in /var/lib/sss/db should fix the issue, but note that removing cache files will also remove all of your cached credentials.
Could not open available domains
[sss_cache] [sysdb_domain_cache_connect] (0x0010): DB version too old [0.23], expected [0.24] for domain implicit_files!
Higher version of database is expected!
In order to upgrade the database, you must run SSSD.
Removing cache files in /var/lib/sss/db should fix the issue, but note that removing cache files will also remove all of your cached credentials.
Could not open available domains

  安装    : libcgroup-0.41-19.el8.x86_64                                                                                    5/13 
  运行脚本: libcgroup-0.41-19.el8.x86_64                                                                                    5/13 
  安装    : docker-ce-rootless-extras-26.1.3-1.el8.x86_64                                                                   6/13 
  运行脚本: docker-ce-rootless-extras-26.1.3-1.el8.x86_64                                                                   6/13 
  安装    : docker-ce-3:26.1.3-1.el8.x86_64                                                                                 7/13 
  运行脚本: docker-ce-3:26.1.3-1.el8.x86_64                                                                                 7/13 
  删除    : buildah-2:1.33.10-1.module+an8.9.0+11263+d08f452f.x86_64                                                        8/13 
  删除    : cockpit-podman-84.1-1.module+an8.9.0+11261+8fb088a9.noarch                                                      9/13 
  运行脚本: podman-4:4.9.4-15.0.1.module+an8.9.0+11263+d08f452f.x86_64                                                     10/13 
  删除    : podman-4:4.9.4-15.0.1.module+an8.9.0+11263+d08f452f.x86_64                                                     10/13 
  运行脚本: podman-4:4.9.4-15.0.1.module+an8.9.0+11263+d08f452f.x86_64                                                     10/13 
  删除    : containers-common-2:1-82.0.1.module+an8.9.0+11261+8fb088a9.x86_64                                              11/13 
  删除    : podman-catatonit-4:4.9.4-15.0.1.module+an8.9.0+11263+d08f452f.x86_64                                           12/13 
  运行脚本: podman-catatonit-4:4.9.4-15.0.1.module+an8.9.0+11263+d08f452f.x86_64                                           12/13 
  废弃    : runc-1:1.1.12-5.0.1.module+an8.9.0+11261+8fb088a9.x86_64                                                       13/13 
  运行脚本: runc-1:1.1.12-5.0.1.module+an8.9.0+11261+8fb088a9.x86_64                                                       13/13 
  验证    : libcgroup-0.41-19.el8.x86_64                                                                                    1/13 
  验证    : containerd.io-1.6.32-3.1.el8.x86_64                                                                             2/13 
  验证    : runc-1:1.1.12-5.0.1.module+an8.9.0+11261+8fb088a9.x86_64                                                        3/13 
  验证    : docker-buildx-plugin-0.14.0-1.el8.x86_64                                                                        4/13 
  验证    : docker-ce-3:26.1.3-1.el8.x86_64                                                                                 5/13 
  验证    : docker-ce-cli-1:26.1.3-1.el8.x86_64                                                                             6/13 
  验证    : docker-ce-rootless-extras-26.1.3-1.el8.x86_64                                                                   7/13 
  验证    : docker-compose-plugin-2.27.0-1.el8.x86_64                                                                       8/13 
  验证    : buildah-2:1.33.10-1.module+an8.9.0+11263+d08f452f.x86_64                                                        9/13 
  验证    : cockpit-podman-84.1-1.module+an8.9.0+11261+8fb088a9.noarch                                                     10/13 
  验证    : containers-common-2:1-82.0.1.module+an8.9.0+11261+8fb088a9.x86_64                                              11/13 
  验证    : podman-4:4.9.4-15.0.1.module+an8.9.0+11263+d08f452f.x86_64                                                     12/13 
  验证    : podman-catatonit-4:4.9.4-15.0.1.module+an8.9.0+11263+d08f452f.x86_64                                           13/13 

已安装:
  containerd.io-1.6.32-3.1.el8.x86_64  docker-buildx-plugin-0.14.0-1.el8.x86_64       docker-ce-3:26.1.3-1.el8.x86_64           
  docker-ce-cli-1:26.1.3-1.el8.x86_64  docker-ce-rootless-extras-26.1.3-1.el8.x86_64  docker-compose-plugin-2.27.0-1.el8.x86_64 
  libcgroup-0.41-19.el8.x86_64        
已移除:
  buildah-2:1.33.10-1.module+an8.9.0+11263+d08f452f.x86_64                                                                       
  cockpit-podman-84.1-1.module+an8.9.0+11261+8fb088a9.noarch                                                                     
  containers-common-2:1-82.0.1.module+an8.9.0+11261+8fb088a9.x86_64                                                              
  podman-4:4.9.4-15.0.1.module+an8.9.0+11263+d08f452f.x86_64                                                                     
  podman-catatonit-4:4.9.4-15.0.1.module+an8.9.0+11263+d08f452f.x86_64                                                           

完毕!

查看docker版本

$ docker version
Client: Docker Engine - Community
 Version:           26.1.3
 API version:       1.45
 Go version:        go1.21.10
 Git commit:        b72abbb
 Built:             Thu May 16 08:34:39 2024
 OS/Arch:           linux/amd64
 Context:           default
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

4. 启动 Docker Engine

sudo systemctl enable --now docker

这将配置 Docker systemd 服务在启动系统时自动启动。 如果不想让 Docker 自动启动,请使用 sudo systemctl start docker 代替。

配置国内镜像加速

docker服务器在国外,由于运营商网络原因,会导致您拉取Docker Hub镜像变慢,甚至下载失败。为了降低因网络问题引起的风险,可以通过为docker配置国内的镜像加速器,提高下载速度。

为docker配置aliyun镜像加速器,新版本Docker(1.10及以上)

先前往容器镜像服务控制台 注册,获取你的加速器地址

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://<你的ID>.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

这一组命令的目的是创建 /etc/docker 目录(如果不存在的话),在其中添加 daemon.json 文件并写入 Docker 镜像加速站点,然后重新加载服务配置并重启 Docker 服务,使得 Docker 能按照新配置运行,提高拉取镜像等操作的效率。

【国内镜像加速站点纷纷暂停服务】你也可以使用其他的镜像加速器, 用法与上面一样,只需要将科大的地址换成其他地址, 使用前请先验证站点是否暂停服务:

【国内镜像加速站点纷纷暂停服务】

image.png

离线安装

使用rpm离线包安装方式请查阅官方文档 docs.docker.com/engine/inst…

卸载

卸载 Docker Engine、CLI、containerd 和 Docker Compose 软件包:

sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras

主机上的映像、容器、卷或自定义配置文件不会自动删除。 要删除所有映像、容器和卷:

sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

您必须手动删除任何已编辑的配置文件。