如何在 docker-swarm 管理器上访问本地构建的 docker-image?

How to access the locally built docker-image on the docker-swarm manager?

尝试在 docker-machine 上构建服务时,出现 “图像不存在”错误docker-机器管理器节点 上。当我在 管理器节点 上检查 docker images 命令时,没有像预期的那样出现图像。但是在根 docker 端我有那些图像。我想在管理器节点上访问这些图像。我读过几篇文章,其中提到,也许我必须将该图像上传到 docker 集线器,然后将其从该集线器中拉出。但是我想在本地访问它。有什么办法可以做到这一点,因为我是 docker.

的新手

这是我在管理器机器上尝试的命令:

docker@manager:~$ docker service create --name "api-client" -p 4200:4200 api_client

这是我的 docker 图像输出:

REPOSITORY TAG IMAGE ID CREATED SIZE

api_client latest 097b19c4deb8 27 hours ago 1.15GB

但是在我的 docker@manager 终端上,我的 docker 图片文件夹是空的。

问题是没有存储图像的存储库。在执行之前,需要将存储库从一个存储库拉到 Swarm 中的每个节点。一般来说,您需要执行以下操作:

  1. 设置一个存储库,如果你想要一个本地存储库,有一个向导 here, but it will be some hassle to get it up and running i and "insecure http" version. An easier way is to get yourself a free docker hub 帐户并将你的图像放在那里。

  2. 使用存储库名称标记您的本地图像。 Howto 显示在上面的指南中。

docker tag <local image> <repository>/<image:tag>

  1. 登录到存储库(如果在云中)并将您的图像推送到存储库

docker login

docker push <repository>/<image>:<tag>

  1. 到运行图像(你的命令)
docker service create --name "api-client" -p 4200:4200 <repository>/<image>:<tag>

您还可以尝试使用

将图像拉入节点的本地缓存

docker pull <repository>/<image>:<tag>