分别在远程服务器端和客户端需要准备的步骤:
1.远程服务器
1.1 映射端口
新建doker容器:
sudo docker run -it -p 127.0.0.1:5000:port_name c7fe6d9267f8 /bin/bash
127.0.0.1 为映射到的物理载体机的IP, 5000 为物理载体机的IP, 22 为容器的端口
c7fe6d9267f8为 CONTAINER ID
sudo docker run -it -p 5000:22 c7fe6d9267f8
doker容器已有:
docker stop c7fe6d9267f8#停止容器
systemctl stop docker#停止docker服务,不能省略
cd /var/lib/docker/containers/c7fe6d9267f8
vim hostconfig.json
(ESC :wq)
修改"PortBindings",例如在原有8091端口下新增22端口如下:
"PortBindings":{"22/tcp":[{"HostIp":"","HostPort":"10022"}],"8091/tcp":[{"HostIp":"","HostPort":"8000"}]}
启动
systemctl start docker
docker start c7fe6d9267f8
1.2 配置SSH
apt-get update
apt-get install openssh-server #安装 ssh 服务
passwd root#设密码
vim /etc/ssh/sshd_config #修改config文件
修改如下:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile $h/.ssh/authorized_keys#将客户端的id_rsa.pub中的公钥复制到authorized_keys中
PermitRootLogin yes #允许root账号登陆
#PermitRootLogin prohibit-password
重启:
service ssh restart
2.本地Vs Code客户端
2.1下remote ssh插件
vscode中下载,略。
P.S Remote-Container只能连接本地自己电脑里的docker
2.2远程访问docker
添加ssh host,
ssh -p 5000 root@127.0.0.1
如果报错:Connection closed by port 22
rm /etc/ssh/ssh_host_*
sudo dpkg-reconfigure openssh-server
参考:
https://blog.csdn.net/u010099080/article/details/104801858
https://zhuanlan.zhihu.com/p/361934730
https://blog.csdn.net/weixin_44722978/article/details/89704085