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

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

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做认证,这是我的做法。
dockerfile里把ssh服务装上,然后新建了用户自己设置密码,或者自己改一下root密码。

houht - 云计算,大数据方向研发

首先容器开启sshd服务,其次保证物理机的22端口没被占用
大佬们,问下我外网用navicate连接的时候不是用ssh登陆,然后再连接数据库吗,这个要怎么解决啊。

要回复问题请先登录注册