在远程主机上运行docker run
是否可以(直接使用docker
命令或docker-py
API)从远程主机启动容器?
假设我有两台具有不同体系结构的x86
机器:-A是一台机器-B是一ARM
台机器
我想使用我的A机器在B机器上运行一个容器。起初,我认为可以使用以下命令:
[A]$> DOCKER_HOST=$MACHINE_B_IP:$MACHIN_B_PORT docker run hello-from-B
但这个命令实际上拉图像hello-from-B
,并试图在其中一些最终的机器运行它exec format
error的原因很明显,你不能运行的图像所特有的ARM
一种x86
机器。
机器A和B之间的通信正常。我可以运行诸如images
或的命令ps
,它可以给我预期的结果:
[A]$> DOCKER_HOST=$MACHINE_B_IP:$MACHIN_B_PORT docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE
hello-from-B <none> fd5059044831 13 hours ago 1.26GB
我听说过docker-machine
并且还没有尝试过,但是据我了解,这不能解决我的问题。
有什么办法可以docker
直接使用。一种变通办法是使用ssh
来连接到远程主机并docker
直接从远程主机使用客户端,但是我想尽可能避免这种解决方案。
提前致谢,
TL; DR;
怎样才能DOCKER_HOST=... docker run
something运行something
的DOCKER_HOST
,而不是我的本地机器上运行它。
回答:
如果您可以在这些平台之一上创建目标计算机B,那么我猜docker-
machine将满足您的需求。您可以使用创建计算机,docker-machine create --driver <..driver setup..>
MACHINE_B然后使用激活它eval $(docker-machine env MACHINE_B)
。 docker-machine env
MACHINE_B 将打印出一些出口报表:
export DOCKER_TLS_VERIFY="1"export DOCKER_HOST="tcp://...."
export DOCKER_CERT_PATH="/..."
export DOCKER_MACHINE_NAME="MACHINE_B"
一旦机器处于活动状态,就可以docker
像在本地一样使用该命令来在MACHINE_B上进行远程操作。
以上是 在远程主机上运行docker run 的全部内容, 来源链接: utcz.com/qa/422029.html