现在介绍使用外部阿里云私有镜像部署swarm
第一步:准备与登录
在 Swarm 管理节点上,登录你的阿里云私有镜像仓库。
bash
docker login --username=<你的阿里云用户名> registry.<地域>.aliyuncs.com
# 按提示输入密码(通常为开通服务时设置的固定密码或 Access Token)
第二步:使用 Stack 部署(关键步骤)
使用 docker stack deploy 命令并带上 --with-registry-auth 参数来部署整个应用栈。
docker stack deploy -c docker-compose.stack.yml --with-registry-auth my_app_stack
参数 --with-registry-auth 的作用
这个参数会做一件非常重要的事:它会让 Swarm 安全地将你刚才在管理节点登录的认证信息加密存储,并在调度任务到各个工作节点时,自动使用这些信息来拉取私有镜像。
这样,你只需要在管理节点登录一次,所有节点(包括运行 vue-frontend 和 python-backend 副本的节点)就都能成功拉取镜像了,不需要在每个节点上重复 docker login。
验证与总结
部署后,你可以用以下命令验证服务状态:
# 查看栈内所有服务
docker stack services my_app_stack
# 查看各副本的详细状态
docker stack ps my_app_stack
总结一下:
--with-registry-auth 是命令参数,用于部署时传递认证。
Compose 文件定义应用结构,不包含认证指令。
正确流程:登录仓库 -> 执行 docker stack deploy --with-registry-auth ...。
如果你在 docker-compose.stack.yml 文件里为不同服务配置了不同来源的私有镜像,这个参数也能确保它们都能被正确拉取。
- THE END -
最后修改:2025年12月5日
非特殊说明,本博所有文章均为博主原创。