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

时间:2019-04-04 10:04:18

标签: docker docker-swarm docker-machine docker-image

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

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

  

docker @ manager:〜$ docker服务create --name“ api-client” -p 4200:4200 api_client

这是我的docker映像输出:

  

存储标签图像ID大小已更改

     

api_client最新097b19c4deb8 27小时前1.15GB

但是在我的 docker @ manager 终端上,我的docker映像文件夹为空。

1 个答案:

答案 0 :(得分:0)

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

  1. 设置存储库,如果需要本地存储库,则可以使用指南here,但是启动并运行i和“不安全的http”版本会有些麻烦。一种更简单的方法是为自己提供一个免费的docker hub帐户并将您的图片放在那里。

  2. 用存储库名称标记您的本地映像。上面的指南中显示了操作方法。

  

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>