文章目录
- 方案一览
- Gateway软件介绍
- 启动容器
- 配置apt源
- 在容器中安装SSH服务器
- 配置SSH服务器
- 生成SSH密钥
- 启动SSH服务
- 为root创建密码
- 连接到容器
- 使用Gateway
方案一览
本篇博客将介绍如何在Docker容器中打开SSH连接服务,以及如何使用JetBrains Gateway软件进行代码调试。
Gateway软件介绍
JetBrains Gateway是一款紧凑型桌面应用,可让您通过 JetBrains IDE 远程工作,甚至无需下载这些IDE。通过在桌面端安装这款软件,您可以直接调试服务器上的代码。
启动容器
使用以下命令启动容器,其中 --net host
参数是为了让容器使用宿主机的网络。
docker run -it --net host --gpus all kevinchina/deeplearning:cu11.8ubuntu22.04 bash
您也可以指定端口,比如将宿主机的2024端口映射到容器的22端口:
docker run -it -p 2024:22 --gpus all kevinchina/deeplearning:cu11.8ubuntu22.04 bash
配置apt源
详细配置apt源,请参考博客:https://qq742971636.blog.csdn.net/article/details/134291339
对于Ubuntu 22.04,配置文件如下:
vim /etc/apt/sources.list
deb 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服务器
在容器内运行以下命令来安装SSH服务器,确保已经安装了openssh-server:
apt-get update
apt-get install -y openssh-server
配置SSH服务器
编辑SSH服务器配置文件 /etc/ssh/sshd_config
,确保以下行被设置为合适的值:
Port 2024 # 根据需求设置,容器Linux开启SSH服务的默认端口是22
PermitRootLogin yes # 允许root用户登录(可选,根据需要设置)
PasswordAuthentication yes # 允许密码身份验证
生成SSH密钥
如果还没有SSH密钥对,可以生成一个:
ssh-keygen -t rsa -b 2048
启动SSH服务
启动SSH服务:
service ssh start
或者,如果容器中使用systemd
,使用以下命令:
systemctl start ssh
为root创建密码
为root创建密码,例如设为 nihao123
:
passwd root
nihao123
连接到容器
现在,可以使用SSH连接到Docker容器。在另一台服务器上执行以下命令:
ssh -p 2024 user@your_docker_host_ip
也可以直接使用root登录:
ssh -p 2024 root@10.20.31.31
请注意,出于安全考虑,建议使用SSH密钥进行身份验证,并将 PasswordAuthentication
设置为 no
。确保防火墙允许通过所选的SSH端口的流量。
使用Gateway
这个就比较轻松了,别的服务器都可以ssh连接到容器里面了,此时,Gateway或者其他ssh工具就当然也是可以直接用ssh连接到容器中去。