VSCode 的 Remote Development 扩展与 Docker 扩展使用

自从微软发布了 Remote Development 扩展之后,这个扩展就成为了我不可或缺的工具之一。对我来说,这不仅仅是建议安装,而是强烈推荐安装的扩展!最近工作中会配合容器环境进行开发,有些朋友还没有体验过 VSCode 远程开发的便利,实在是太遗憾了,这篇文章就算是使用记录和软件安利了。

Remote Development 扩展

Remote Development 扩展包含了所有远程开发的组件,安装这些组件后,你可以通过 SSH 连接到远程主机进行开发,或者进入 Docker 容器内部进行开发,甚至可以进入 Windows 的 Linux 子系统进行开发:

首先,你可以看到界面左侧有一个电脑图标,点击后会看到下方的界面,而右上角的下拉菜单可以选择使用 Containers、WSL 或 SSH 进行远程开发。

使用 Remote - WSL

如果你使用的是 Windows 系统,并且主机上安装了 Linux 子系统,比如:

那么在选择 WSL Targets 时,自然会看到可以连接的子系统:

当 VSCode 窗口弹出后,就表示已经成功进入 WSL 了,这时就可以直接在 VSCode 上开始进行开发了。

使用 Remote - Containers

Remote - Containers 的部分也很类似,选择 Containers 后,可以看到主机上所有的容器,选择 Attach to Container 就能够直接打开一个新的 VSCode 窗口进入容器内部进行开发。

使用 Remote - SSH

就我个人而言,SSH 是我最常使用的功能,除了平时需要远程连接到另一台主机外,我自己也会在多个虚拟机中进行开发。首先可以设置好 .ssh/config 文件,内容可能如下:

javascript 复制代码
Host workspace1
  User user1
  IdentityFile ~/.ssh/id_rsa_user1
  Port 22
  HostName xxx.xxx.xxx.xxx
Host workspace2
  User user2
  IdentityFile ~/.ssh/id_rsa_user2
  Port 1022
  HostName xxx.xxx.xxx.xxx
Host workspace3
  User user3
  IdentityFile ~/.ssh/id_rsa_user3
  Port 2022
  HostName xxx.xxx.xxx.xxx

上述主要设置远程主机上的用户名、端口和密钥,设置完成后,在 SSH Targets 选项下,就会看到设置好的 Host 可以选择:

端口转发

在使用 VSCode 远程开发时,如果运行了一些服务,通常会帮你自动做好端口转发,这样就能直接通过 localhost 访问到。

当然,你也可以自己添加,并自定义要绑定的端口,只需右键点击已生成的端口转发选择 Change Local Port 即可:

你可能还会有一个问题:

如果是想要远程到远程主机中的容器内呢?

这个问题很好解决,其实就是先远程到 SSH 主机,然后在弹出的 VSCode 窗口下继续远程到容器中:

只是在这个过程,可能在第二次打开容器时会等待比较长的时间,但等到窗口完全打开后,我在开发过程中并没有感到与本机的容器开发有什么区别。

Docker 扩展

虽然在上面的 Remote - Containers 部分已经足够用了,但也建议把 Docker 的扩展安装使用:

安装完成后可以看到以下的界面:

在 Containers View 部分与 Remote - Containers 类似,也会显示主机上所有的容器,不过这边多了个 Attach Shell 的功能,可以直接在 VSCode 的 Terminal 下打开容器的 bash,这一点其实还是蛮实用的:

而其他的功能也是比较好用的,比如可以列出所有主机上的 docker image ,使用界面执行 docker run 相关指令。

总结

总的来说,这些都是非常方便的工具。虽然在工作中见过一群能用 Vim 进行开发的牛人,但我认为无论使用哪种工具,只要是自己能上手、能加速开发并提升品质的工具,都是值得去学习的。

相关推荐
雪域迷影42 分钟前
PostgreSQL Docker Error – 5432: 地址已被占用
数据库·docker·postgresql
莹雨潇潇2 小时前
Docker 快速入门(Ubuntu版)
java·前端·docker·容器
芯橦5 小时前
【瑞昱RTL8763E】音频
单片机·嵌入式硬件·mcu·物联网·音视频·visual studio code·智能手表
tangdou3690986556 小时前
Docker系列-5种方案超详细讲解docker数据存储持久化(volume,bind mounts,NFS等)
docker·容器
漫无目的行走的月亮9 小时前
在Docker中运行微服务注册中心Eureka
docker
大道归简12 小时前
Docker 命令从入门到入门:从 Windows 到容器的完美类比
windows·docker·容器
zeruns80212 小时前
如何搭建自己的域名邮箱服务器?Poste.io邮箱服务器搭建教程,Linux+Docker搭建邮件服务器的教程
linux·运维·服务器·docker·网站
爱跑步的程序员~12 小时前
Docker
docker·容器
疯狂的大狗13 小时前
docker进入正在运行的容器,exit后的比较
运维·docker·容器
长天一色13 小时前
【Docker从入门到进阶】01.介绍 & 02.基础使用
运维·docker·容器