从CentOS迁移到欧拉(openEuler)系统后,Docker安装流程的主要调整如下:
1. 系统准备与依赖检查
检查系统版本
cat /etc/os-release
# 确认是openEuler系统
安装必要依赖
# openEuler可能需要额外依赖
sudo dnf install -y yum-utils device-mapper-persistent-data lvm2
2. Docker安装方式调整
方案一:使用openEuler官方仓库(推荐)
# 1. 添加Docker官方仓库
sudo dnf config-manager --add-repo https://download.docker.com/linux/openeuler/docker-ce.repo
# 2. 安装Docker
sudo dnf install -y docker-ce docker-ce-cli containerd.io
# 3. 启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
方案二:使用openEuler的dnf/yum仓库
# 部分openEuler版本已包含Docker
sudo dnf install -y docker-engine
# 或
sudo dnf install -y docker
3. 关键调整点
包管理器差异
- CentOS:
yum→ openEuler:dnf(兼容yum语法) - 命令基本一致,但建议使用
dnf
存储驱动调整
# 检查并配置存储驱动
sudo docker info | grep Storage
# 如果需要修改,编辑配置文件
sudo vim /etc/docker/daemon.json
添加内容:
{
"storage-driver": "overlay2"
}
SELinux配置
openEuler默认使用SELinux,确保配置正确:
# 查看SELinux状态
getenforce
# 如果需要,调整策略
sudo setenforce 0 # 临时关闭
# 或修改/etc/selinux/config永久设置
4. 完整安装脚本示例
#!/bin/bash
# openEuler Docker安装脚本
# 卸载旧版本(如有)
sudo dnf remove -y docker docker-client docker-client-latest
docker-common docker-latest docker-latest-logrotate
docker-logrotate docker-engine
# 安装依赖
sudo dnf install -y dnf-plugins-core
# 添加Docker仓库
sudo dnf config-manager --add-repo
https://download.docker.com/linux/openeuler/docker-ce.repo
# 安装Docker
sudo dnf install -y docker-ce docker-ce-cli containerd.io
# 配置Docker(可选)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
# 启动服务
sudo systemctl start docker
sudo systemctl enable docker
# 验证安装
sudo docker run hello-world
# 添加用户到docker组(可选)
sudo usermod -aG docker $USER
5. 常见问题解决
问题1:仓库不兼容
# 如果遇到仓库错误,尝试:
sudo dnf clean all
sudo dnf makecache
问题2:内核兼容性
# 检查内核版本
uname -r
# openEuler使用较新内核,通常兼容性更好
问题3:防火墙配置
# openEuler使用firewalld
sudo firewall-cmd --permanent --zone=public --add-port=2375/tcp
sudo firewall-cmd --reload
6. 迁移注意事项
-
数据迁移:如果从CentOS迁移,备份Docker数据
# 备份镜像和容器 docker save -o images.tar $(docker images -q) -
网络配置:检查网络模式是否正常
docker network ls -
容器重启:重新创建或启动容器
总结
迁移到openEuler后,Docker安装的主要变化:
- 包管理器从yum改为dnf
- 可能需要调整仓库源
- 内核和存储驱动可能有优化
- SELinux配置需要检查
建议先测试再上生产,确保所有容器在openEuler上运行正常。
CLOUD技术笔记