本地Docker容器之间的SSH

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

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

我已经添加了openssh服务器和安装密钥。 我如何之间ssh(用于实验目的)? 尝试使用从docker容器中获得的主机名ssh导致无法parsing主机名

警告进入根容器可能会给其主机的根访问权限。

您可以创build一个群,并使用生成的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 

如果群中有多个主机,则可以find该机器。

 docker service ps doggy 

您可以使用生成的DNS名称或swarmpipe理器的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