zl程序教程

您现在的位置是:首页 >  后端

当前栏目

【深度学习】docker中安装ssh服务,并使用vscode连接操作其文件夹

2023-09-27 14:20:13 时间


前言

应用场景vscode要ssh远程到docker容器中,想调试本地代码一样调试docker容器内的代码,先打个样子


1. docker容器安装ssh服务

1.1. 安装docker的ssh

创建并启动centos7容器,运行init程序(必须打开privileged选项,否则将出现“Failed to get D-Bus connection: Operation not permitted”)
在宿主机终端下依次执行如下命令:

# 拉取centos7镜像
docker pull centos:7

# 创建并启动centos7容器,运行init程序(必须打开privileged选项,否则将出现“Failed to get D-Bus connection: Operation not permitted”)
docker run -d -name centos7 --privileged=true centos:7 /usr/sbin/init

# 进入容器终端,运行bash程序
docker exec -it centos7 /bin/bash

1.2.在容器终端下依次执行如下命令:

# 安装所需软件
yum install -y initscripts openssh-server openssl openssl-devel

# 启动ssh服务
service sshd restart

# 确保22端口已打开
ss -tan

# 修改sshd配置文件,找到"PermitRootLogin yes",取消这一行的注释,然后保存退出
vim /etc/ssh/sshd_config

# 设置root用户的密码
echo 123456 | passwd --stdin root

# 退出容器终
exit 

1.3.回到宿主机终端后,依次执行如下命令:

# 将容器保存为新的镜像
docker commit <容器ID> justin0114/centos7-ssh

# 关闭容器
docker kill <容器ID>

# 使用新镜像创建并启动容器,同时配置端口映射(将本地端口5022映射到容器端口22)
docker run -d -p 5022:22 --privileged=true justin0114/centos7-ssh /usr/sbin/init

1.4. 使用 ssh 客户端工具(如 MobaXterm)连接容器

ssh -p 5022 root@172.18.43.130

(base) [jianming_ge@localhost ~]$ ssh -p 5022  root@172.18.43.130
The authenticity of host '[172.18.43.130]:5022 ([172.18.43.130]:5022)' can't be established.
ECDSA key fingerprint is SHA256:8BW+XdShdz4WcSRZQsdM4HcG0hWjW2VAxsa2lhSlWPk.
ECDSA key fingerprint is MD5:80:e4:aa:a0:37:a1:dd:52:bb:f5:92:78:1f:f3:86:86.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[172.18.43.130]:5022' (ECDSA) to the list of known hosts.



root@172.18.43.130's password:
Permission denied, please try again.
root@172.18.43.130's password:
[root@d0370e0011ee ~]#

2、vscode连入docker

其实,刚才1.4 可以用ssh命令行连入,说明docker镜像已经安装成功了ssh服务,现在只是换一个客户端来连接
配置:
在这里插入图片描述
安装:
在这里插入图片描述
mkdir /app

在这里插入图片描述
运行成功!!!
为后面本地vscode调试docker代码打下良好的基础~ 具体看 我的另一篇博文 yolv5的c++落地, 落了2个月的还没成功

1、映射目录 2.python环境的管理设置


总结

应用场景vscode要ssh远程到docker容器中,想调试本地代码一样调试docker容器内的代码,打样完成,说着完全是可行的
后面:1、映射目录 2.python环境的管理设置