本地Docker容器之间的SSH

时间:2017-12-13 19:08:52

标签: docker ssh

刚开始使用Docker。从同一图像本地运行多个docker容器。

docker run -it -p 52022:22 ubuntu
docker run -it -p 52023:22 ubuntu

我添加了openssh-server和setup键。我如何在它们之间进行ssh(用于实验目的)?尝试使用我从docker容器获取的主机名ssh导致无法解析主机名

1 个答案:

答案 0 :(得分:2)

WARS ssh到根容器中可能会对其主机进行root访问。

您可以制作一个群并使用生成的DNS名称与他们交谈。

仅供参考这个例子,由于ubuntu没有运行任何东西,它会停止容器并启动另一个容器。您需要启动一个像httpd

一样的容器

这是我的小狗的例子。 doggy / docker-compose.yml文件看起来像这样。

version: '3.0'
services:
  sparkey:
    image: "httpd"
    ports:
     - "52022:22"
     - "9002:80"
  limey:
    image: "httpd"
    ports:
     - "52023:22"
     - "9003:80"

如果尚未完成,则初始化一个群。

docker swarm init

然后在一个狗狗文件夹中。

docker stack deploy --compose-file docker-compose.yml doggy

然后当你进入容器时从docker ps获取容器名称。

docker exec -it doggy_limey_1.7jm5muapfhekb11v2ei8gvnc9 bash

如果群中有多台主机,您可以找到该机器。

docker service ps doggy

您可以使用生成的DNS名称或群组管理器的IP与对方通话。

ping doggy_sparkey
PING doggy_sparkey (10.0.0.4): 56 data bytes
64 bytes from 10.0.0.4: seq=0 ttl=64 time=0.036 ms
64 bytes from 10.0.0.4: seq=1 ttl=64 time=0.070 ms

使用此命令停止堆栈。

docker stack rm doggy