Docker无法使用:从本地推送后下载

背景

在服务器使用Docker部署emqx

1
2
3
4
5
6
7
docker run -d --name emqx \
-p 1883:1883 -p 8083:8083 \
-p 8084:8084 -p 8883:8883 \
-p 18083:18083 \
-v /root/docker-data/emqx/data:/opt/emqx/data \
-v /root/docker-data/emqx/log:/opt/emqx/log \
emqx/emqx:5.8.6

部署失败

image-20250402211504863

原因:国内无法直接访问Docker,且多个镜像加速站点关闭。

服务器使用了阿里云镜像加速器,但由于emqx:5.8.6为最新版本,无法拉取。

方案

在更换多个镜像加速器后依然未能解决。最终采用以下方案解决:

  1. 本地拉取镜像(要求本地能访问Docker官方仓库)。
  2. 将本地镜像推送至阿里云镜像仓库。
  3. 服务器从阿里云镜像仓库拉取镜像。

实施步骤

下面以CentOS服务器部署emqx:5.8.6为例

创建阿里云镜像服务

这部分见创建个人版实例,按步骤操作即可。

本地拉取镜像

1
docker pull --platform linux/amd64 emqx/emqx:5.8.6

由于我本地电脑是Mac系统,CentOS无法使用,这里使用 --platform 参数在 Mac 上拉取 x86_64 兼容的镜像。

推送镜像到阿里云

参考操作指南,按步骤推送即可。

image-20250402214316507

服务器拉取阿里云镜像

参考操作指南,按步骤拉取即可。

image-20250402214542095

启动容器

1
2
3
4
5
6
7
docker run -d --name emqx \
-p 1883:1883 -p 8083:8083 \
-p 8084:8084 -p 8883:8883 \
-p 18083:18083 \
-v /root/docker-data/emqx/data:/opt/emqx/data \
-v /root/docker-data/emqx/log:/opt/emqx/log \
emqx/emqx:5.8.6