前言
为了在远程服务器上开发、调试各种环境的项目;为了规范化,远程端的服务器采用了docker来管理,所以使用VSCode进行远程连接服务器里的项目container来开发。
一、VSCode的安装
这里安装步骤不再赘述。
二、Docker的安装
这里安装步骤不再赘述。
服务器中每个不同的container可以简单地理解为不同的虚拟机,因为是虚拟机所以就代表可以从本地端去利用SSH去连接不同的container,从而来完成远程开发与调试。
三、开始连接
3.1、服务器端准备
1、创建镜像
使用docker images 指令查看已存在的镜像;如果服务器上没有需要的镜像,则使用docker pull 指令拉镜像到服务器上;以python环境为例,输入指令:
docker pull python
2、创建远程连接的容器,输入指令:
docker run -itd --name {your container name} --shm-size="8g" -p 8099:22 --privileged=true {docker image id}
其中{your container name}替换成你要取得container名字;{docker image id}就是docker images 查询得到的image id。
OPTIONS说明:
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-P: 随机端口映射,容器内部端口随机映射到主机的端口;
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口 ;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb": 为容器指定一个名称;
--volume , -v: 绑定一个卷。映射关系:本地路径或服务器物理路径:容器内路径;
--privileged 默认false:true【container内的root拥有真正的root权限】;false【container内的root只是外部的一个普通用户权限】;privileged启动的容器【可以看到很多host上的设备,可以执行mount,可以在docker容器中启动docker容器】
--shm-size:共享内存
3、进入容器进行配置,输入指令:
docker exec -it {your container name} /bin/bash
①、在容器内安装ssh。
apt-get update
apt-get install openssh-server
②、设置root密码(这里的密码是container的root密码,可以与服务器的密码不一样)
passwd
③、修改SSH配置文件
vim /etc/ssh/sshd_config
打开sshd_config文件后,在文件中做以下修改
注释掉 PermitRootLogin prohibit-password 这一行
添加这一行 PermitRootLogin yes
PasswordAuthentication yes
UsePAM no
④、重启SSH服务
service ssh restart
⑤、退出容器,测试链接
ssh -p 8099 root@127.0.0.1
root: 容器内部系统的root帐号,不是服务器的用户帐号
127.0.0.1:服务器本机ip,也可以通过ifconfig查看对应实际ip4地址
-p 8099: 该端口号是链接容器端口22的映射端口,外部链接使用.
然后输入前面设置的passwd设置的密码,进入容器代表链接成功。
至此,服务器端容器的SSH配置已完成。
3.2、本地VSCode准备
①、VSCode扩展
安装如下图所示的remote SSH,该工具为远程资源管理器。
②、配置VSCode
勾选Remote.ssh:show Login Terminal选项【文件 > 首选项 > 设置 > 扩展 > Remote - SSH】
③、VSCode远程连接容器
方法一:SSH TARGETS中新建一个SSH连接
输入远程链接,如下指令
ssh -p 8099 root@{ip}
这里的-p 8099 就是上面创建容器时候的端口号,而{ip}就是服务器的ip地址。
输入密码确认:
方法二:编辑.ssh/config文件
Host myContainer
HostName 服务器ip地址
User root
Port 8099
打开链接,输入密码后,就可以通过vscode连接到容器内了。