刚开始使用Docker。从同一图像本地运行多个docker容器。
docker run -it -p 52022:22 ubuntu
docker run -it -p 52023:22 ubuntu
我添加了openssh-server和setup键。我如何在它们之间进行ssh(用于实验目的)?尝试使用我从docker容器获取的主机名ssh导致无法解析主机名
答案 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