docker语言 - stack-始终从hub.docker.com获取图像



摘要:当我在AWS/EC2环境中执行'docker stack部署'时,请使用本地(旧的(图像。如何否决此行为以使" Docker堆栈"使用Hub.docker.com的新图像?作为解决方法,我首先在执行" docker stack deploy"之前,先从index.docker.com进行图像的" docker rupt"。需要这个额外的步骤吗?

情况:在Jenkins服务器上(不在AWS/EC2上(,我有以下建筑步骤:

  • Maven Build
  • docker login -u $ {env.docker_username} -p $ {env.docker_password}
  • docker build -t local-username/image-name:最新
  • docker标签本地使用/图像名称dockerhub-username/image-name:最新
  • docker push dockerhub-username/image-name:最新

我的jenkinsfile中的下一步是通过我的AWS环境上的安全壳(SSH(执行的:

  • docker stack部署-c docker -compose.yml stackname

当我执行此詹金斯作业时,Docker映像将取自AWS上的本地图像存储库。我想使用hub.docker.com上的最新图像。

当我在" docker stack部署"之前插入以下操作时,一切正常工作:

  • docker拉索引

我的问题:

  • 为什么我需要此额外的" Docker Pull"动作?
  • 如何删除此操作?只需在docker-compose.yml文件中的图像前添加'index.docker.io'?还是有更好的方法?

当然不需要额外的码头拉力。

什么对您有帮助?

  • @tarun的答案可能有效。
  • 或只是命名Docker Hub注册表。在Docker-compose.yml(stack(文件中使用以下行
servicename:
  image: index.docker.io/dockerhub-username/image-name

这将对您有所帮助。

也许这是由于您在本地或在单独的Jenkins服务器上构建的事实,将图像推到Docker Hub并在EC2上的远程外壳上启动。在该EC2上只有当前图像。

我为您尝试了上述解决方案,并且可以使用。

您只需执行" Docker堆栈部署",并且使用正确的图像。

最新更新