Image 如何在docker compose 3中使用docker deploy?

Image 如何在docker compose 3中使用docker deploy?,image,docker,containers,Image,Docker,Containers,当我发出命令sudo docker stack deploy-c docker-compose.yml test Ignoring unsupported options: build, external_links, links, restart Updating service test_cache (id: me2vh1lffrl4ppzomphin167la) Updating service test_lb (id: ycnne1ifpt517wdbfdg1g5tlup) Updat

当我发出命令
sudo docker stack deploy-c docker-compose.yml test

Ignoring unsupported options: build, external_links, links, restart

Updating service test_cache (id: me2vh1lffrl4ppzomphin167la)
Updating service test_lb (id: ycnne1ifpt517wdbfdg1g5tlup)
Updating service test_media (id: rr3ural9hjz0mw6hjx7n2vywm)
Creating service test_web

Error response from daemon: rpc error: code = 3 desc = ContainerSpec: image reference must be provided
我得到这个错误-来自守护进程的错误响应:rpc error:code=3 desc=ContainerSpec:image引用必须提供


但是我为这个容器创建了映像。

您的compose.yml文件不包括
docker stack deploy所需的映像部分。如果要将这些映像部署到swarm,还应该将它们推送到注册表服务器,因为docker使用固定到注册表中映像的sha256以确保所有节点运行相同的映像。由于swarm不构建映像,任何本地未包含映像的节点都将无法运行此映像,除非它从注册表中提取。

这已经很晚了,但我想说的是,当我在
docker compose.yml
文件中有注释时,我出现了此错误,如下所示:

version: "3"
services:
  web:
    # pull the image from repository
    image: myname/docker-private:testproj
    ...
但是,注释需要从行的第一个字符开始:

version: "3"
services:
  web:
# pull the image from repository
    image: myname/docker-private:testproj
    ...

这解决了问题。

请将您的
docker compose.yml
包含在内,以获得更详细的答案。我已注册docker。然后,我使用命令
docker login
登录docker帐户,并编写“`sudo docker push test``我又收到一个错误-拒绝:拒绝对资源的请求访问推送到docker hub要求以您的登录id作为前缀命名图像:
login\u id/image\u name
。您可以使用
docker-tag-test:latest-login\u-id/image\u-name:latest
重新标记现有图像。它似乎可以工作。现在我可以使用sudo docker stack deploy-c docker-compose.yml login\u id/image\u name命令进行部署?是的。如果您的注册表是私有的,您还需要包括
——使用注册表身份验证
,似乎您已经解决了第一个错误。我建议打开一个带有新错误的新问题,并确保包含yml文件的内容。有关提问的更多详细信息,请参见“帮助”部分,特别是“帮助”部分。