在华为云 EulerOS 上从零部署 Docker:完整实践与避坑指南
一、环境准备
在开始之前,先确认你的实验或生产环境满足以下条件:
- 一台运行 Huawei Cloud EulerOS 2.0(HCE OS)的弹性云服务器 ECS,规格建议 1vCPUs / 2GiB 以上;
- 已绑定弹性公网 IP,安全组入方向放行 SSH(22)端口;
- 具备 root 或 sudo 权限,且 yum 源可正常访问。
先做一次系统更新,避免后续依赖版本冲突:
sudo yum update -y
cat /etc/system-release
二、安装 Docker 引擎
HCE OS 基于 openEuler 构建,软件源中已内置 Docker 相关包,直接用 yum 安装即可:
sudo yum install -y docker-engine
安装完成后启动服务并设置为开机自启:
sudo systemctl start docker
sudo systemctl enable docker
systemctl status docker
看到 Active: active (running) 即表示 Docker 守护进程已正常运行。
三、配置镜像加速器
默认从 Docker Hub 拉取镜像在国内网络下往往较慢,建议配置华为云 SWR 镜像加速器。编辑配置文件:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://.mirror.swr.myhuaweicloud.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
镜像加速器地址需要替换成你在华为云容器镜像服务 SWR 控制台生成的专属地址,每个账号不同。
四、验证安装结果
运行官方的测试镜像,确认整条链路通畅:
sudo docker run hello-world
sudo docker images
sudo docker ps -a
如果能看到 “Hello from Docker!” 的输出,说明安装、镜像拉取、容器运行三个环节全部正常。
五、常见问题与避坑
1. 容器内无法访问外网
通常是 IP 转发未开启。编辑 /etc/sysctl.conf,添加 net.ipv4.ip_forward=1,然后执行 sysctl -p 生效,并重启 Docker 服务。
2. 镜像拉取超时
优先检查 daemon.json 的镜像加速器地址是否正确、JSON 格式是否合法(常见的错误是末尾多了逗号)。修改后必须 systemctl restart docker。
3. 非 root 用户执行 docker 报权限错误
把当前用户加入 docker 组即可:sudo usermod -aG docker $USER,重新登录后生效。注意这等同于赋予该用户 root 级别的权限,生产环境需谨慎。
4. 磁盘空间被占满
长期使用后,停止的容器、悬空镜像和构建缓存会占用大量空间,可定期清理:
sudo docker system prune -a
六、小结
在华为云 EulerOS 上部署 Docker 整体非常顺畅,核心就三步:装包、配加速器、验证。真正容易踩坑的地方集中在镜像加速器配置和网络转发两个点上。把这两处处理好,后续无论是部署 Web 应用还是做 CI/CD 构建,都能有一个稳定的底座。
## 一、环境准备
在开始之前,先确认你的实验或生产环境满足以下条件:
- 一台运行 **Huawei Cloud EulerOS 2.0**(HCE OS)的弹性云服务器 ECS,规格建议 1vCPUs / 2GiB 以上
- 已绑定弹性公网 IP,安全组入方向放行 SSH(22)端口
- 具备 root 或 sudo 权限,且 yum 源可正常访问
先做一次系统更新,避免后续依赖版本冲突:
```bash
sudo yum update -y
cat /etc/system-release
```
## 二、安装 Docker 引擎
HCE OS 基于 openEuler 构建,软件源中已内置 Docker 相关包,直接用 yum 安装即可:
```bash
sudo yum install -y docker-engine
```
安装完成后启动服务并设置为开机自启:
```bash
sudo systemctl start docker
sudo systemctl enable docker
systemctl status docker
```
看到 `Active: active (running)` 即表示 Docker 守护进程已正常运行。
## 三、配置镜像加速器
默认从 Docker Hub 拉取镜像在国内网络下往往较慢,建议配置华为云 SWR 镜像加速器。编辑配置文件:
```bash
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://<your-id>.mirror.swr.myhuaweicloud.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
```
> 镜像加速器地址需要替换成你在华为云容器镜像服务 SWR 控制台生成的专属地址,每个账号不同。
## 四、验证安装结果
运行官方的测试镜像,确认整条链路通畅:
```bash
sudo docker run hello-world
sudo docker images
sudo docker ps -a
```
如果能看到 “Hello from Docker!” 的输出,说明安装、镜像拉取、容器运行三个环节全部正常。
## 五、常见问题与避坑
### 1. 容器内无法访问外网
通常是 IP 转发未开启。编辑 `/etc/sysctl.conf`,添加 `net.ipv4.ip_forward=1`,然后执行 `sysctl -p` 生效,并重启 Docker 服务。
### 2. 镜像拉取超时
优先检查 daemon.json 的镜像加速器地址是否正确、JSON 格式是否合法(常见错误是末尾多了逗号)。修改后必须执行 `systemctl restart docker`。
### 3. 非 root 用户执行 docker 报权限错误
把当前用户加入 docker 组即可:`sudo usermod -aG docker $USER`,重新登录后生效。注意这等同于赋予该用户 root 级别的权限,生产环境需谨慎。
### 4. 磁盘空间被占满
长期使用后,停止的容器、悬空镜像和构建缓存会占用大量空间,可定期清理:
```bash
sudo docker system prune -a
```
## 六、小结
在华为云 EulerOS 上部署 Docker 整体非常顺畅,核心就三步:装包、配加速器、验证。真正容易踩坑的地方集中在**镜像加速器配置**和**网络转发**两个点上。把这两处处理好,后续无论是部署 Web 应用还是做 CI/CD 构建,都能有一个稳定的底座。
- 点赞
- 收藏
- 关注作者
评论(0)