开发基本过程,就是编辑代码,然后进行编译,最后进行运行测试。但是有个问题就是,编辑代码一般在windows下进行,编译代码在Linux进行。当在本地主机上搭建一个虚拟机时,可以使用共享目录的方式,nfs或者samba或者ubuntu的共享目录(windows)。但是当你的编译环境移到服务器上的时候(docker),你发现共享目录就行不通了。
如何在一个远端服务器上开始工作。(docker服务器)
一) 你需要登录服务器
怎么安全便捷的登录服务器,开启网络虚拟终端呢?答案是ssh
ssh需要ip地址和端口号,ssh默认端口22。但是docker使用不同的端口分配给开发者的。
例如我在公司等到的账户信息:docker服务器地址:192.168.1.123; 端口:12345;用户:yp;密码:123456
然后拿xshell的ssh连接服务器,输入用户密码即可登录服务器。
二)你需在window下编辑代码,在docker服务器上编译
>使用共享目录
简单的直接搞共享目录行不通,原因所有ip都是局域网,子网中只有下层的子网能发现上层的子网ip
a) docker服务器地址:192.168.1.123
b) 我登录的分配给我的远端主机ip:172.52.12.123
c)我Windows的ip:192.168.2.123
window 和分配给我的主机都ping得通docker服务器(b and c ping a is ok)。但是windows与分配给我的主机互ping不通。
要想windows与分配给我的主机使用共享目录,听说需要搞一些东西,我暂时还不知道。
>使用vscode
我们就使用vscode,vscode也可以通过ssh去登录分配给我的主机,访问文件,然后编辑文件。这样源码存放在分配给我的主机上,代码编辑通过 windows端的vscode,编译在vscode连接服务器的虚拟终端。
vscode在我的分配给我的Linux主机里运行着一个服务端,window的vscode是一个客户端
1)安装一个insider版(内测版)的vscode
2)在extension中搜索remote Development,点击安装即可
3)安装成功后,会在最左边多出一个图标。点击新图标,点击配置(齿轮),选择Users\Administrator\.ssh\conf
4)配置如下
Host yp
HostName 192.168.1.123
User root
Port 1234
5)生成vscode ssh使用秘钥
a)在windows端使用cmd生成秘钥 ssh-keygen -t rsa -b 4096
b)把秘钥拷贝到 SET REMOTEHOST=yp@192.168.1.123
scp -P 5139 %USERPROFILE%\.ssh\id_rsa.pub %REMOTEHOST%:~/tmp.pub
c)ssh %REMOTEHOST% -p 5139 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat ~/tmp.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && rm -f ~/tmp.pub"
注意:当在windows的cmd下运行ssh-keygen报错时,请安装一下git。并把git的bin 及usr/bin的路径添加到window环境变量PATH里面。(我的电脑-->属性-->高级系统设置-->环境变量 需要关闭cmd重新开)
id_ras.pub是公钥public,id_ras是私钥,私钥不要泄露。
一切ok后,你会发现ssh yp@192.168.1.123 -p 1234 根本就不用输入密码,这是因为加密秘钥已经自接拷贝到分配给我的主机上了。在分配给我的主机上也多了个~/.ssh/authorized_keys。
重新打开vscode,点击左侧remote新图标,选择你配置的host,右键,选择connect to Host in * ,看是否成功了。基本步骤是这样的。真的很方便,去尝试一下。
vscode怎么设置点击目标后目标高亮呢?看博客VS Code代码高亮颜色设置
File->preference->setting->搜索workbench.colorCustomizations->然后点击编辑json 搞上去就完事了。
{
"editor.fontSize": 12,
"editor.minimap.enabled": false,
"window.zoomLevel": 2,
"workbench.colorCustomizations": {
"editor.selectionHighlightBackground": "#ff0000"
}
}
Alt+ <-进行回到back操作界面
Alt + -> 回到forward界面