docker容器配置vscode ssh远程连接
概要
本文针对docker在拉取到本地ubuntu20.04镜像的情况下,通过 SSH 远程连接到本地 Docker 启动的镜像。
启动包含SSH服务的Docker镜像
- 拉取Ubuntu镜像
镜像可以到官方Docker-hub上进行搜索,找到你想要的镜像,也可通过dockerfile文件进行自定义创建,这里不多赘述dockerfile文件编写。
docker pull <镜像名>
- 创建并启动一个容器来运行镜像,同时进行端口映射
这里2222对于的是本机端,记得使用空闲端口。建议使用8088或者8080
docker run -itd -p 2222:22 --name <自命名容器名称> <镜像名称>
- 进入容器
docker exec -it <自命名容器名称> /bin/bash
- 安装SSH服务,并配置SSH服务信息
这里对于update较慢的可以参考我之前的文章配置好国内镜像->Docker容器环境配置
apt-get update
apt-get install -y openssh-server
一般情况下Docker容器没有root密码,可以无需密码直接登陆,但是存在安全隐患,你可以通过终端输入passward root设置好。
mkdir /var/run/sshd
echo 'root:<这里填写你远程连接时root用户密码>' | chpasswd
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
echo "export VISIBLE=now" >> /etc/profile
- 启动SSH服务
/usr/sbin/sshd -D &
如果你想每次启动容器就自动启动ssh文件不用手动启动可以在使用
vim ~/.bashrc
(这里vim是Linux终端文件编写器)在该文件最下方输入
service sshd restart
然后保存即可。
vscode通过SSH远程连接到容器
这里默认vscode已经安装好了插件Remote-SSH。
在本地C:\user\user_name.ssh\config文件中输入
Host docker_remote_name <这个远程名称随意>
HostName localhost
User root
Port 8080 <前面配置的本地端口号>
然后在vscode中直接连接你配置的远程名称。
你也可以通过在本地终端或vscode新建远程输入一下命令行,均可进行连接
ssh root@localhost -p 8080