Docker容器使用--net=host的方式启动的,怎么用ssh去连接容器


我现在怎么只能连接到宿主机器,我该怎么设置,在用SSH的时候能连接到容器?
已邀请:
  1. 如果容器里没有运行sshd,可以登录宿主机后执行docker exec -it CONTAINER_NAME_OR_ID /bin/sh
  2. 可以在容器里运行个sshd,通过SSH客户端登录。 但由于是用的host网络,所以容器里的sshd进程无法使用默认端口,需要修改其配置文件把端口改成非22端口

icebolt - Docker爱好者暗黑

赞同来自: Misul wisen 简简单单shilinyan


为什么要ssh连接容器呢,通过docker exec多好。

shlallen - DaoCloud软件工程师,合伙人

赞同来自: Misul


使用ssh连接容器的时候,容器如果有sshd进程在运行的时候,才能成功。

如果在Docker镜像中没有sshd的可执行文件;假设有,但是在docker的entrypoint或者cmd中没有指定启动sshd进程的话,容器中就不会有sshd进程,自然ssh会失效。

使用docker exec是一个比较好的方法。

CDocer - 90宅男

赞同来自:


不建议连接ssh,要连接ssh的话需要把免密码登录给注释掉,启动容器时root用户的密码是随机分配的,还不如先ssh到宿主机,然后通过docker exec

肥龙GOR - 运维攻城师@eJ0y

赞同来自:


docker build的时候把opensshd搞进去,然后使用一个集中式的openldap做认证,这是我的做法。

简简单单shilinyan

赞同来自:


赞赞赞

要回复问题请先登录注册