2017-06-02 107 views
0

我在我的Debian主机中创建了几个码头Ubuntu的图像。无法连接到码头集装箱到容器

1. app01 - sudo docker run --name app01 -P -id ubuntu-control-container-bkup 
2. control - sudo docker run --name control -p 22:22 -id ubuntu-control-container-bkup 

现在,从控制容器im试图SSH连接到app01容器,但我得到连接拒绝错误。

[email protected]:/# ssh 172.17.0.2 
ssh: connect to host 172.17.0.2 port 22: Connection refused 
+0

检查app01的IP,以确认是否有正确的:'泊坞窗检查app01'。然后检查它是否打开了22端口:'docker exec app01 ss -ltn' – Robert

回答

0

默认情况下未安装或启用ssh。如果你真的需要它,你需要通过你的Dockerfile来安装它。

https://docs.docker.com/engine/examples/running_ssh_service/

,但你可能要考虑这些事情:

https://jpetazzo.github.io/2014/06/23/docker-ssh-considered-evil/

+0

Thanks.Im lil有点混淆,因为我从传统的背景中读取文章后,我们通常使用一个可控的控制器ssh到不同的盒子并安装多个软件包..我如何安装不同的软件包(吨Linux/python软件包),如果我不能ssh .. – user1050619

+0

每个不同类型的目标机器将是一个单独的Dockerfile和图像构建... PHP的应用程序? Dockerfile和图像。 rails应用程序? Dockerfile和图像。 nginx的? Dockerfile和图像。等等,而不是将配置部署到服务器,您将配置构建到映像中并部署映像 - 所有配置已经完成并处理。没有更多的配置漂移,没有更多的特定应用程序的服务器动态配置。只需部署映像并从中运行容器。 –

+0

这并不是说可行的仍然没有用。很多优秀的文档和论述在一起使用它们,但是如果你用docker替换了可靠的已部署应用程序,那么这是你将要采用的一般方法。 –