从CentOS迁移到欧拉系统后,Docker安装流程需要做哪些调整?

从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: yumopenEuler: 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. 迁移注意事项

  1. 数据迁移:如果从CentOS迁移,备份Docker数据

    # 备份镜像和容器
    docker save -o images.tar $(docker images -q)
  2. 网络配置:检查网络模式是否正常

    docker network ls
  3. 容器重启:重新创建或启动容器

总结

迁移到openEuler后,Docker安装的主要变化:

  • 包管理器从yum改为dnf
  • 可能需要调整仓库源
  • 内核和存储驱动可能有优化
  • SELinux配置需要检查

建议先测试再上生产,确保所有容器在openEuler上运行正常。

云服务器