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 进行开发的牛人,但我认为无论使用哪种工具,只要是自己能上手、能加速开发并提升品质的工具,都是值得去学习的。

相关推荐
饱饱要坚持可持续发展观4 小时前
docker 重命名镜像
docker
羑悻的小杀马特6 小时前
Docker 容器化部署核心实战:从镜像仓库管理、容器多参数运行到 Nginx 服务配置与正反向代理原理解析
nginx·docker·容器·镜像仓库
DogDaoDao17 小时前
Docker全解析:从核心概念到2025年AI集成新特性
人工智能·docker·eureka·程序员
程序员在线炒粉8元1份顺丰包邮送可乐17 小时前
Docker 部署生产环境可用的 MySQL 主从架构
mysql·docker·架构
liliangcsdn19 小时前
Mac本地docker安装Kibana+ElasticSearch
elasticsearch·macos·docker
优秀的老黄21 小时前
Docker部署RabbitMQ
linux·运维·docker·中间件·容器·centos·rabbitmq
Lin_Aries_042121 小时前
容器使用卷
linux·运维·docker·云原生·容器·eureka
寒士obj21 小时前
Docker的使用及核心命令
运维·docker·容器
邂逅星河浪漫21 小时前
【Docker-Nginx】通过Docker部署Nginx容器
nginx·docker·容器
Dontla1 天前
Docker Compose healthcheck介绍(监控容器中服务的实际健康状态)数据库健康检查pg_isready
数据库·docker·容器