什么是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/
开始安装
- 环境
- 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/ 中的映像、容器、卷和网络不会自动移除。
- 安装
安装方式有很多种:
- 您可以设置 Docker 的rpm repository并从其中进行安装,以方便安装和升级任务。
- 您可以下载 RPM 离线软件包,手动安装,并完全手动管理升级。 这在一些情况下非常有用,比如在无法访问互联网的空气屏蔽系统上安装 Docker。
下面演示使用 rpm repository在线安装
更新yum
yum -y 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 能按照新配置运行,提高拉取镜像等操作的效率。
【国内镜像加速站点纷纷暂停服务】你也可以使用其他的镜像加速器, 用法与上面一样,只需要将科大的地址换成其他地址, 使用前请先验证站点是否暂停服务:
- 中科大镜像:docker.mirrors.ustc.edu.cn/
- 网易:hub-mirror.c.163.com/
- 阿里云(阿里云需要注册):https://<你的ID>.mirror.aliyuncs.com
- 七牛云加速器:reg-mirror.qiniu.com
【国内镜像加速站点纷纷暂停服务】
- 中科大镜像站发布暂停服务公告(mirrors.ustc.edu.cn/help/docker…
离线安装
使用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
您必须手动删除任何已编辑的配置文件。