docker - 来自私有本地注册表的图像不会填充到 docker swarm 中的工作节点
问题描述
注册表是作为管理节点上的服务创建的,具有以下参数:
docker service create --name registry --constraint 'node.labels.registry==true' --publish published=5000,target=5000 --replicas 1 registry:2
docker service ls
显示它在其他服务中的存在。
将本地图像添加到注册表:
docker tag backend:1.0 localhost:5000/backend:1.0
docker push localhost:5000/backend:1.0
docker tag frontend:1.0 localhost:5000/frontend:1.0
docker push localhost:5000/frontend:1.0
到目前为止一切都很成功。可以通过浏览器或以下方式访问存储库 API curl
:
curl localhost:5000/v2/_catalog
{"repositories":["backend","frontend"]}
但是,当我的应用程序堆栈使用命令创建时docker stack deploy -c ttv.yml --with-registry-auth ttv
,工作节点无法看到存储库中的图像:
docker service ps ttv_frontend --no-trunc
[...]
[worker1]: No such image: localhost:5000/frontend:1.0@sha256:4cdb...
另外,我不能从任何工人那里获得curl
。localhost:5000/v2/_catalog
整个集群在 OpenStack 上运行。是否有可能禁用某些端口?还是我在配置注册表时犯了错误?
引擎版本为 20.10.8。
解决方案
推荐阅读
- python - 从 URL 到 Python (Pandas) 的压缩文件
- go - 下载 Go 包
- angular - 在 Spring Boot 中将 Angular 中的 put 请求传递给后端时出现错误 400
- javascript - 从 ajax 响应中获取表列平均值
- ruby-on-rails - 模型的 rails 单元测试返回无效结果
- python - Python问题:如何解决while函数中的简单数字?
- playwright - Playwright 是否在命令行中提供自定义参数?
- java - React Native CLI 0.64 版设置任务':app:checkDebugDuplicateClasses'的执行失败。和任务:app:compileDebugJavaWithJavac FAILED
- python - 如果值重复,如何从字典中删除重复项
- excel - Excel VBA - 将一行中的单元格复制到非错误值