【发布时间】:2021-06-11 18:47:08
【问题描述】:
假设有两台 docker 主机 A 和 B,并且机器 A 上有一个 docker 映像 xyz。我想将它从机器 A 部署到机器 B。我该怎么做?
我知道可以通过如下设置 DOCKER_HOST 来远程操作容器,但这似乎要求机器 B 上已经存在 docker 映像 xyz。此外,从映像 xyz 创建一个 tar 文件并将其复制到机器B,然后在机器 B 上运行它是另一种方法。我想知道是否有一种方法可以直接从机器 A 进行操作?谢谢!
docker -H "ssh://my-user@machine-b" run -i -t xyz
【问题讨论】:
-
最好的方法是将
docker push镜像到某个注册表,然后远程机器可以docker pull它。不要不要尝试设置$DOCKER_HOST:它不会解决这个问题,而且它有一些重大的安全隐患(如果它没有完美地配置它会提供一个未经身份验证的网络路径通过机器不受限制的 root 访问)。 -
ssh://user@host的语法$DOCKER_HOST与 ssh 连接一样安全。它没有人们看到的将 docker API 暴露给网络的问题。 -
大卫,感谢您的及时回复。我对 ssh 没问题,因为我正在做实验测试,而不是生产测试。您的建议很好,但我想知道是否有更简单的方法。
-
BMitch,是的,使用“ssh://user@host”就可以了。谢谢。