ssh连接服务器中的docker

本文介绍如何在服务器上配置Docker容器的PyTorch环境,并通过SSH从本地电脑连接到该容器。主要步骤包括使用iptables进行端口映射,配置容器内的SSH服务,以及在主机上设置转发规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在服务器上的docker配置pytorch环境,即需要通过本地电脑使用ssh连接服务器里的docker的22端口,过程就是先使用ssh连接上服务器,在服务器内进行端口转换。有两种方法,1.在创建docker容器时使用-p 指定端口映射,再配置容器内的ssh-server即可;2.容器创建完后,如果想添加端口转换,可以使用iptables进行添加

步骤
  1. 添加一条规则,将从非 docker0 接口上,目的端口为 10022 的 tcp 报文,修改其目的地址为 172.17.0.2:22,这里的172.17.0.2是容器的地址,根据容器修改,10022可以自定义,22为ssh监听端口,无须修改;
sudo iptables -t nat -A DOCKER ! -i docker0 -p tcp --dport 10022 -j DNAT --to-destination 172.17.0.2:22
  1. 在主机发出的本地公网或内网 ip 加端口号 10022 的请求会被定位到 172.17.0.2:22 上,但是在将请求转发到 docker0 网桥上时,对于默认的 filter 表中的 FORWARD 链的规则是 DROP,因此还需要在 filter 表中设置相应的规则;
sudo iptables -t filter -A FORWARD ! -i docker0 -o docker0 -p tcp -d 172.17.0.2 -j ACCEPT --dport 22
  1. 在容器内安装openssh-server和vim, 然后在容器vim /etc/ssh/sshd_config,改动PermitRootLogin yes,使得root能使用ssh登录,service ssh restart重启ssh服务, passwd root对root修改密码;
 ssh -p 10022 root@172.26.201.93

这里的172.26.201.93是服务器的地址,填入的密码是刚刚在容器内修改的密码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值