当前位置: 首页 > 面试题库 >

在远程主机上运行docker run

尉迟浩思
2023-03-14
问题内容

是否可以(直接使用docker命令或docker-pyAPI)从远程主机启动容器?

假设我有两台具有不同体系结构的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 images
REPOSITORY                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运行somethingDOCKER_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上进行远程操作。



 类似资料:
  • 机器A和B之间的通信工作良好。我可以运行像或这样的命令,它会给出预期的结果: 我听说过,但还没有尝试过,但据我所知,这并不能解决我的问题。 有什么方法可以直接使用来实现这一点。解决办法可能是使用连接到远程主机,并直接从远程主机使用客户机,但我希望尽可能避免这种解决方案。 在上运行,而不是在本地计算机上运行。

  • 以下是在远程主机上安装PIP/BOTO的任务,这些任务在运行route53模块时不会再出现错误:

  • 我的公司正在使用Office365处理我们的邮件和共享文件(SharePoint)。因此,我们没有任何服务器。 但是,我们有一个应用程序必须在远程桌面服务器上运行。我想做的是在Azure上设置一台服务器,在上面安装远程桌面主机,然后使用它,而不是购买一台服务器。 这可能吗?我可以在Azure服务器上设置远程桌面会话主机吗?我可以使用Office365的广告作为远程桌面所需的广告吗?

  • 我按照官方指示在Ubuntu 16.04上安装了docker,并成功地将注册表作为容器运行。我想远程连接到另一个容器,所以我尝试: 我得到一个错误: 连接过程中出错:Posthttp://1.2.3.4:2375/v1.29/containers/19f36d1bdfaf/exec: 拨打tcp 1.2.3.4:2375:connectex:无法建立连接,因为目标计算机主动拒绝连接。 为什么会出现

  • 我有一个运行Jenkins(2.155.1)的Docker容器,另一个运行SonarQube(7.4)的Docker容器。Jenkins正在为Jenkins插件使用SonarQube扫描仪,扫描是在Jenkins容器上完成的。项目的如下所示: 为了使扫描作为Jenkins管道作业的一部分工作,我在Jenkins容器上手动安装了,方法是下载zip文件并将其解压缩到: 这很有效,但我想通过以下方法来改

  • 在Ansible Playbook中,我在运行start service模块时出现了一个错误,因为我想在远程主机上启动数据库。我对Ansible是新手。 致命:[10.138.12.67]:失败!=>{“changed”:false,“msg”:“找不到请求的服务mysql:host”}