Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从一个docker容器ssh到另一个docker容器?_Docker - Fatal编程技术网

如何从一个docker容器ssh到另一个docker容器?

如何从一个docker容器ssh到另一个docker容器?,docker,Docker,下面是一个场景 我有三个容器 Container1、container2和container3(基于Ubuntu的映像),其中container2充当Container1和container2之间的路由器 我将在container3中运行一个服务器程序,该程序将无限期运行,但当我从客户端启动连接时,我将收集一些统计信息,为下一次运行,我需要更改服务器中的一些参数(使用tc netem)并重新运行测试 在进入下一次运行之前,我需要SSH并在Middlerouter和container3中执行命令

下面是一个场景

我有三个容器

Container1、container2和container3(基于Ubuntu的映像),其中container2充当Container1和container2之间的路由器

我将在container3中运行一个服务器程序,该程序将无限期运行,但当我从客户端启动连接时,我将收集一些统计信息,为下一次运行,我需要更改服务器中的一些参数(使用tc netem)并重新运行测试

在进入下一次运行之前,我需要SSH并在Middlerouter和container3中执行命令

我不能用SSH登录,因为它说连接被拒绝。我有一个端口22暴露在所有的容器中

下面是容器运行的图像

您必须使用网桥或MacVlan网络绑定ip地址才能执行ssh

能否向我们提供您的DockerFile、您尝试执行的命令、stacktrace等等。。。很难使用此小信息提供帮助。请检查:。您可能还想看一看。@Mornor,谢谢,我将发布并更新帖子。@tgogos感谢您提供的链接,正如我所说的,我正在尝试从容器到容器而不是从主机到容器进行SSH。docker exec将帮助从主机执行shell命令。在这种情况下,您可能会在容器中安装ssh守护程序。我认为基本映像没有运行任何ssh服务,因此这就是连接被拒绝的原因。原始提问者的评论指出,他们的容器中已经运行了sshd。“在容器中安装”和“服务启动”都不是Docker的最佳实践:都要求在删除容器时丢失工作,以及service/systemctl/。。。因为没有init守护进程来处理它们,所以往往无法工作。