心流logo

欧拉22系统安装 docker的步骤。

在 openEuler 22.03 LTS 系统上安装 Docker CE 的步骤可以分为以下几个主要阶段。以下是详细的安装流程:


1. 更新系统

在安装 Docker 之前,确保系统已经更新到最新版本。这可以通过以下命令完成:

sudo dnf update -y

此步骤确保系统中已安装的软件包和依赖项都是最新的,避免潜在的兼容性问题。


2. 安装必要的软件包

为了能够使用 Docker CE 存储库,需要安装一些必要的软件包,例如 dnf-plugins-core

sudo dnf install -y dnf-plugins-core

这些软件包提供了管理软件仓库的功能,是后续添加 Docker 存储库的前提。


3. 添加 Docker CE 存储库

Docker CE 的存储库可以通过以下命令添加:

sudo dnf config-manager --add-repo=https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo

为了提高下载速度,建议将存储库中的官方地址替换为华为开源镜像:

sudo sed -i 's+download.docker.com+repo.huaweicloud.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

此外,由于 $releasever 变量在 openEuler 中无效,可以将其替换为 8

sudo sed -i 's+$releasever+8+' /etc/yum.repos.d/docker-ce.repo

这一步确保了 Docker 软件包能够正确下载并安装。


4. 安装 Docker CE

在添加了存储库之后,可以使用以下命令安装 Docker CE:

sudo dnf install -y docker-ce

此命令将安装 Docker 引擎及其相关组件。


5. 启动 Docker 服务

安装完成后,需要启动 Docker 服务并设置开机自启:

sudo systemctl start docker
sudo systemctl enable docker

这将确保 Docker 服务在系统启动时自动运行。


6. 验证安装

为了确认 Docker 已成功安装,可以运行以下命令:

docker --version

这将显示 Docker 的版本信息。此外,可以通过运行一个测试容器来进一步验证:

sudo docker run hello-world

如果一切正常,您将看到一条欢迎信息,表示 Docker 已成功安装并运行。


7. 安装 Docker Compose(可选)

如果您需要使用 Docker Compose,可以通过以下命令安装:

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

这将下载并安装 Docker Compose,并为其添加执行权限。


8. 验证 Docker Compose 安装

安装完成后,可以通过以下命令验证 Docker Compose 的版本:

docker-compose --version

这将显示 Docker Compose 的版本信息。


9. 离线安装 Docker(可选)

如果您的系统无法连接互联网,可以使用离线安装包进行安装。以下是离线安装的步骤:

9.1 下载 Docker 离线安装包

在联网环境中下载 Docker 的离线安装包:

wget https://download.docker.com/linux/static/stable/aarch64/docker-27.5.0.tgz

将下载的文件传输到目标机器的 /opt/docker 目录。

9.2 解压安装包

在目标机器上解压安装包:

cd /opt/docker
tar -xzvf docker-27.5.0.tgz

这将解压出 Docker 的二进制文件。

9.3 复制二进制文件到系统路径

将解压后的二进制文件复制到系统路径:

sudo cp docker/* /usr/bin/
sudo chmod +x /usr/bin/docker*
sudo chmod +x /usr/bin/containerd*
sudo chmod +x /usr/bin/runc

这将确保 Docker 的二进制文件可以被系统识别和执行。

9.4 创建 Docker 服务配置文件

创建 Docker 服务配置文件:

sudo tee /etc/systemd/system/docker.service <<EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service containerd.service
Wants=network-online.target
Requires=containerd.service
[Service]
Type=notify
ExecStart=/usr/bin/dockerd --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target
EOF

这将创建 Docker 服务的配置文件,确保 Docker 服务可以正确启动。

9.5 安装 containerd

Docker 依赖于 containerd 作为容器运行时,因此需要手动安装 containerd

cd /opt/docker/docker
sudo cp containerd containerd-shim-runc-v2* /usr/bin/
sudo chmod +x /usr/bin/containerd*

这将确保 containerd 二进制文件可以被系统识别和执行。

9.6 创建 containerd 服务文件

创建 containerd 服务文件:

sudo tee /etc/systemd/system/containerd.service <<EOF
[Unit]
Description=containerd container runtime
Documentation=https://containerd.io
After=network.target
[Service]
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/bin/containerd
Restart=always
RestartSec=5
Delegate=yes
KillMode=process
OOMScoreAdjust=-999
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
[Install]
WantedBy=multi-user.target
EOF

这将创建 containerd 服务的配置文件,确保 containerd 服务可以正确启动。

9.7 启动 Docker 服务

重新加载 systemd 配置并启动 Docker 服务:

sudo systemctl daemon-reload
sudo systemctl enable --now docker
sudo systemctl start docker

这将确保 Docker 服务在系统启动时自动运行。

9.8 验证安装

验证 Docker 和 containerd 服务的状态:

sudo systemctl status containerd docker

这将显示 Docker 和 containerd 服务的状态,确保它们正常运行。


10. 常见问题解决

10.1 依赖缺失错误

如果在安装过程中遇到依赖缺失错误,可以尝试手动安装缺失的依赖项。例如:

sudo dnf install -y yum-utils

这将安装 yum-utils,确保 Docker 存储库可以正确添加。

10.2 Docker 服务启动失败

如果 Docker 服务启动失败,可以检查日志以定位问题:

journalctl -u docker --no-pager

这将显示 Docker 服务的日志,帮助您找到问题的根源。


11. 总结

在 openEuler 22.03 LTS 系统上安装 Docker CE 的过程相对简单,主要步骤包括更新系统、安装必要的软件包、添加 Docker 存储库、安装 Docker CE、启动 Docker 服务、验证安装以及(可选)安装 Docker Compose。对于离线安装,需要手动下载和配置 Docker 的二进制文件和依赖项。通过以上步骤,您可以顺利在 openEuler 22.03 LTS 系统上安装和配置 Docker。



提示: 没有提供 libcgroup container-selinux

在 openEuler 22.03 LTS 系统上安装 Docker CE 时,如果提示缺少 libcgroupcontainer-selinux,可以通过以下方法解决:


1. 安装 container-selinux

1.1 手动下载 container-selinux

由于 openEuler 22.03 LTS 的默认仓库可能不包含所需的 container-selinux 包,可以手动从 CentOS Vault 下载:

wget https://vault.centos.org/7.9.2009/extras/x86_64/Packages/container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm

1.2 安装 container-selinux

使用 rpm 命令安装下载的 container-selinux 包。如果依赖关系无法自动解决,可以使用 --nodeps 选项跳过依赖检查:

sudo rpm -ivh --nodeps container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm

2. 安装 libcgroup

2.1 添加阿里云基础镜像源

为了确保能够安装 libcgroup,可以将系统的默认镜像源替换为阿里云的镜像源:

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

2.2 更新系统源并清理缓存

更新系统源并清理缓存,以确保能够正确下载和安装软件包:

sudo dnf clean all
sudo dnf makecache

2.3 安装 libcgroup

使用 dnfyum 安装 libcgroup

sudo dnf install -y libcgroup

3. 安装 Docker CE

3.1 添加 Docker CE 存储库

添加 Docker CE 存储库时,如果遇到 $releasever 问题,可以手动修改存储库文件中的 baseurl,将其替换为 7

sudo dnf config-manager --add-repo=https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's+$releasever+7+' /etc/yum.repos.d/docker-ce.repo

3.2 安装 Docker CE

在解决了 container-selinuxlibcgroup 的依赖问题后,可以安装 Docker CE:

sudo dnf install -y docker-ce

4. 验证安装

安装完成后,验证 Docker 是否安装成功:

docker --version

运行一个测试容器以进一步验证:

sudo docker run hello-world

5. 配置阿里云镜像源(可选)

为了提高 Docker 镜像的下载速度,可以配置阿里云镜像源。编辑 Docker 的配置文件 /etc/docker/daemon.json,添加以下内容:

{
  "registry-mirrors": ["https://<your-aliyun-mirror>.mirror.aliyuncs.com"]
}

然后重启 Docker 服务:

sudo systemctl restart docker

6. 常见问题解决

6.1 依赖缺失错误

如果在安装过程中仍然遇到依赖缺失错误,可以尝试手动安装缺失的依赖项。例如:

sudo dnf install -y yum-utils

6.2 Docker 服务启动失败

如果 Docker 服务启动失败,可以检查日志以定位问题:

journalctl -u docker --no-pager

7. 总结

在 openEuler 22.03 LTS 系统上安装 Docker CE 时,如果提示缺少 libcgroupcontainer-selinux,可以通过手动下载和安装这些依赖项来解决。此外,可以将系统的默认镜像源替换为阿里云的镜像源,以确保能够顺利安装所需的软件包。通过以上步骤,您可以顺利在 openEuler 22.03 LTS 系统上安装和配置 Docker。



container-selinux 安装失败

在 openEuler 22.03 LTS 系统上安装 Docker 时,如果遇到 container-selinux 安装失败的问题,通常是因为系统仓库中缺少所需的版本或依赖关系未满足。以下是详细的解决方案和步骤:


1. 问题分析

container-selinux 是 Docker 和 Kubernetes 等容器技术依赖的一个关键组件,用于提供 SELinux 策略支持。在 openEuler 22.03 LTS 中,官方仓库可能未提供足够新版本的 container-selinux,或者依赖项缺失,导致安装失败。


2. 解决方案

2.1 手动下载并安装 container-selinux

如果系统仓库中没有合适的 container-selinux 包,可以手动从 CentOS Vault 下载并安装:

wget https://vault.centos.org/7.9.2009/extras/x86_64/Packages/container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm
sudo rpm -ivh container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm

如果出现依赖缺失错误,可以使用 --nodeps 选项跳过依赖检查:

sudo rpm -ivh --nodeps container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm

2.2 替换为阿里云镜像源

如果系统默认的镜像源无法找到 container-selinux,可以将镜像源替换为阿里云的镜像源,以提高软件包的可用性:

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
sudo dnf clean all
sudo dnf makecache

然后尝试重新安装 container-selinux

sudo dnf install -y container-selinux

2.3 安装依赖项

如果 container-selinux 仍然无法安装,可能是因为缺少依赖项。可以尝试手动安装以下依赖项:

sudo dnf install -y policycoreutils
sudo dnf install -y libsemanage
sudo dnf install -y libselinux-utils

然后再尝试安装 container-selinux


2.4 跳过 SELinux 支持(适用于测试环境)

如果只是在测试环境中使用 Docker,可以跳过 SELinux 支持。修改安装命令,跳过 SELinux 相关的依赖检查:

curl -sfL get.k3s.io | INSTALL_K3S_SKIP_SELINUX_RPM=true sh -

对于 Docker,可以临时关闭 SELinux:

sudo setenforce 0

如果需要永久关闭 SELinux,可以编辑 /etc/selinux/config 文件,将 SELINUX=enforcing 改为 SELINUX=disabled,然后重启系统。


3. 验证安装

安装完成后,验证 container-selinux 是否已成功安装:

rpm -q container-selinux

如果安装成功,可以继续安装 Docker 或其他依赖 container-selinux 的组件。


4. 常见问题解决

4.1 依赖缺失错误

如果在安装过程中仍然遇到依赖缺失错误,可以尝试手动安装缺失的依赖项。例如:

sudo dnf install -y yum-utils

4.2 安装失败

如果安装失败,可以尝试从阿里云或其他镜像源手动下载 container-selinux 的 RPM 包并安装。


5. 总结

在 openEuler 22.03 LTS 系统上安装 container-selinux 时,如果遇到安装失败的问题,可以通过手动下载并安装 RPM 包、替换镜像源或跳过 SELinux 支持来解决。对于生产环境,建议使用官方仓库提供的软件包;对于测试环境,可以临时关闭 SELinux 以简化安装过程。通过以上步骤,您可以顺利在 openEuler 22.03 LTS 系统上安装和配置 container-selinux



container-selinux 跳过依赖失败,不跳过提示 缺少 policycoreutils-python

在 openEuler 22.03 LTS 系统上安装 container-selinux 时,如果提示缺少 policycoreutils-python,可以通过以下步骤解决依赖问题并成功安装 container-selinux


1. 问题分析

container-selinux 是 Docker 和其他容器技术依赖的一个关键组件,用于提供 SELinux 策略支持。在安装过程中,如果系统缺少 policycoreutils-python,会导致安装失败。policycoreutils-python 是 SELinux 管理工具的一部分,用于处理 SELinux 策略和文件上下文。


2. 解决方案

2.1 安装 policycoreutils-python

首先,尝试通过 dnfyum 安装 policycoreutils-python

sudo dnf install -y policycoreutils-python

如果 dnf 无法找到该包,可以尝试使用 yum

sudo yum install -y policycoreutils-python

如果仍然无法安装,可以手动下载并安装 policycoreutils-python 的 RPM 包。

2.2 手动下载并安装 policycoreutils-python

如果系统默认的镜像源无法找到 policycoreutils-python,可以手动从阿里云或 CentOS 镜像源下载并安装:

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/policycoreutils-python-2.5-29.el7.x86_64.rpm
sudo rpm -ivh policycoreutils-python-2.5-29.el7.x86_64.rpm

如果出现依赖缺失错误,可以使用 --nodeps 选项跳过依赖检查:

sudo rpm -ivh --nodeps policycoreutils-python-2.5-29.el7.x86_64.rpm

3. 安装 container-selinux

3.1 手动下载并安装 container-selinux

如果系统默认的镜像源无法找到 container-selinux,可以手动从阿里云或 CentOS 镜像源下载并安装:

wget http://mirror.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.107-3.el7.noarch.rpm
sudo rpm -ivh container-selinux-2.107-3.el7.noarch.rpm

如果出现依赖缺失错误,可以使用 --nodeps 选项跳过依赖检查:

sudo rpm -ivh --nodeps container-selinux-2.107-3.el7.noarch.rpm

4. 验证安装

安装完成后,验证 policycoreutils-pythoncontainer-selinux 是否已成功安装:

rpm -q policycoreutils-python
rpm -q container-selinux

如果安装成功,可以继续安装 Docker 或其他依赖 container-selinux 的组件。


5. 常见问题解决

5.1 依赖缺失错误

如果在安装过程中仍然遇到依赖缺失错误,可以尝试手动安装缺失的依赖项。例如:

sudo dnf install -y libsemanage
sudo dnf install -y libselinux-utils

5.2 安装失败

如果安装失败,可以尝试从阿里云或其他镜像源手动下载 policycoreutils-pythoncontainer-selinux 的 RPM 包并安装。


6. 总结

在 openEuler 22.03 LTS 系统上安装 container-selinux 时,如果提示缺少 policycoreutils-python,可以通过手动下载并安装 policycoreutils-pythoncontainer-selinux 的 RPM 包来解决。如果依赖项仍然缺失,可以使用 --nodeps 选项跳过依赖检查。通过以上步骤,您可以顺利在 openEuler 22.03 LTS 系统上安装和配置 container-selinux



有没有好的办法,我发现如果我在单独下载 policycoreutils-python 很可能还有其他依赖缺少。 怎么给欧拉系统一个源 ?

这是一个非常常见的问题,特别是在 openEuler 系统中,如果默认的软件仓库中缺少某些软件包(如 policycoreutils-python),手动下载和安装 RPM 包时,确实可能会遇到“依赖地狱”问题。解决这个问题的最有效方法是为 openEuler 系统配置一个可靠的软件源(YUM/DNF 仓库),比如阿里云、华为云、清华源等。


✅ 解决方案:为 openEuler 配置阿里云源

阿里云的 openEuler 镜像源非常稳定,软件包齐全,是目前最推荐的第三方源之一。


1. 备份原始源文件(可选)

sudo mv /etc/yum.repos.d/openEuler.repo /etc/yum.repos.d/openEuler.repo.bak

2. 下载阿里云 openEuler 源配置文件

sudo wget -O /etc/yum.repos.d/openEuler.repo http://mirrors.aliyun.com/repo/oe_22.repo

⚠️ 注意:oe_22.repo 是 openEuler 22.03 LTS 的源文件。如果你使用的是其他版本(如 23.09),请访问 阿里云 openEuler 镜像站 选择对应版本的源文件。


3. 清理并重建缓存

sudo dnf clean all
sudo dnf makecache

4. 安装 policycoreutils-python

现在你可以尝试安装 policycoreutils-python,系统会自动处理依赖关系:

sudo dnf install -y policycoreutils-python

5. 安装 container-selinux

安装完 policycoreutils-python 后,继续安装 container-selinux

sudo dnf install -y container-selinux

✅ 其他推荐源(可选)

如果你不想用阿里云,也可以使用以下源:

华为云源

sudo wget -O /etc/yum.repos.d/openEuler.repo https://mirrors.huaweicloud.com/repo/oe_22.repo

清华大学源

sudo wget -O /etc/yum.repos.d/openEuler.repo https://mirrors.tuna.tsinghua.edu.cn/help/openeuler/22.03_LTS/

✅ 验证源是否生效

你可以运行以下命令查看当前可用的软件仓库:

dnf repolist

如果看到阿里云或清华源已经生效,说明配置成功。


✅ 安装 Docker 的后续步骤(可选)

在配置好源并安装完 container-selinuxpolicycoreutils-python 后,你可以继续安装 Docker:

sudo dnf install -y docker-ce
sudo systemctl start docker
sudo systemctl enable docker

✅ 总结

问题 解决方案
安装 policycoreutils-python 时依赖缺失 配置阿里云/华为云/清华源,使用 dnf 自动解决依赖
手动下载 RPM 包依赖复杂 使用官方或第三方源统一管理依赖
openEuler 默认源缺少软件包 替换为阿里云等第三方源

如果你还有其他软件包安装问题,也可以告诉我,我可以帮你查找对应的源或 RPM 包。