以下以​​testimage​​镜像作为例子

在服务器容器中配置ssh

  1. 通过一个其他的端口进入容器,这里使用6789端口
sudo docker run -it -p 6789:22 testimage
  1. 下载openssh
apt-get update
apt-get install openssh-server
  1. 设置root密码
passwd

然后设置两遍相同的密码,之后登陆的时候要用到!
4. 修改配置文件

vim /etc/ssh/sshd_config

注释掉 ​​PermitRootLogin prohibit-password​​​ 这一行
添加这一行 ​​​PermitRootLogin yes​​ 5. 重启ssh服务

service ssh restart
# 或使用
# /etc/init.d/ssh restart
  1. 本机连接ssh
ssh -p 6789 root@0.0.0.0
  1. 远程访问服务器docker里正在运行的容器
ssh -p 6789 root@192.168.x.xx

报错:ssh: connect to host 0.0.0.0 port 6789: Connection refused】

原因:没有开放对应端口

解决方案:在主机上

sudo iptables -I INPUT -p tcp --dport 6789 -j ACCEPT

在自己电脑上配置vscode

  1. 本地安装openssh,我用的是mac
brew install openssh
  1. vscode中下载Remote-SSH插件
  2. 使用插件连接远程服务器里的容器

注:之前一直用的是Remote-Container,以为可以更方便的连接到服务器里的docker,屡次尝试都不成功,查了些其他人的博客说Remote-Container只能连接本地自己电脑里的docker emmmm…

Resources