本篇博客将介绍如何在Docker容器中打开SSH连接服务,以及如何使用JetBrains Gateway软件进行代码调试。
JetBrains Gateway是一款紧凑型桌面应用,可让您通过 JetBrains IDE 远程工作,甚至无需下载这些IDE。通过在桌面端安装这款软件,您可以直接调试服务器上的代码。
使用以下命令启动容器,其中 --net host
参数是为了让容器使用宿主机的网络。
bashdocker run -it --net host --gpus all kevinchina/deeplearning:cu11.8ubuntu22.04 bash
您也可以指定端口,比如将宿主机的2024端口映射到容器的22端口:
bashdocker run -it -p 2024:22 --gpus all kevinchina/deeplearning:cu11.8ubuntu22.04 bash
详细配置apt源,请参考博客:https://qq742971636.blog.csdn.net/article/details/134291339
对于Ubuntu 22.04,配置文件如下:
bashvim /etc/apt/sources.list
bashdeb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
## Pre-released source, not recommended.
# deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
在容器内运行以下命令来安装SSH服务器,确保已经安装了openssh-server:
bashapt-get update apt-get install -y openssh-server
编辑SSH服务器配置文件 /etc/ssh/sshd_config
,确保以下行被设置为合适的值:
bashPort 2024 # 根据需求设置,容器Linux开启SSH服务的默认端口是22
PermitRootLogin yes # 允许root用户登录(可选,根据需要设置)
PasswordAuthentication yes # 允许密码身份验证
如果还没有SSH密钥对,可以生成一个:
bashssh-keygen -t rsa -b 2048
启动SSH服务:
bashservice ssh start
或者,如果容器中使用systemd
,使用以下命令:
bashsystemctl start ssh
为root创建密码,例如设为 nihao123
:
bashpasswd root nihao123
现在,可以使用SSH连接到Docker容器。在另一台服务器上执行以下命令:
bashssh -p 2024 user@your_docker_host_ip
也可以直接使用root登录:
bashssh -p 2024 [email protected]
请注意,出于安全考虑,建议使用SSH密钥进行身份验证,并将 PasswordAuthentication
设置为 no
。确保防火墙允许通过所选的SSH端口的流量。
这个就比较轻松了,别的服务器都可以ssh连接到容器里面了,此时,Gateway或者其他ssh工具就当然也是可以直接用ssh连接到容器中去。
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!