概述
为什么会有用VSCode做Docker环境中的开发这个话题?
因为我们开发的主要内容是在Docker环境内,所以如果使用一般的Host环境下的VSCode,会有很多Path、Lib对不上的问题。
为了解决这个问题,以前我们是在Docker里引入Host的VSCode并使用系统X-Window桌面或者用VNC Server使用GUI。这一次通过通过在Docker环境下开sshd,就可以让VSCode远程连到Docker中,与本机VSCode有同样的体验。
配置步骤
Docker外的准备
- 在Docker外关闭sshd:sudo service ssh stop
在Docker内安装Open SSH Server
- 进入Docker
- 安装服务 sudo apt-get install -y openssh-server
- 编辑配置 sudo vi /etc/ssh/sshd_config ,找到以下这些行,解除这些行首的注释
- 如果有需要在Host上也运行SSH Server,为了避免冲突可以修改Port端口
Port 22
ListenAddress 0.0.0.0
ListenAddress ::
PermitRootLogin yes
- 启动服务 sudo service ssh restart
- 参考 https://www.cnblogs.com/zhuminghui/p/11066367.html
远程登录
- 远程登入 ssh username@docker_host_ip ,正常同意输入密码
- 设定免密码登录 ssh-copy-id username@docker_host_ip ,如果从来没有用过,需要生成公私秘钥
- 参考 https://zhuanlan.zhihu.com/p/558991188
使用VSCode
- 在自己PC上打开VSCode
- 选择左下角Remote Connection,也可以正中间的命令中选 Connect to Host… Remote-SSH
- 输入运行着Docker的主机IP和端口
- VSCode会自行初始化