VSCode中使用容器及容器编排docker-compose
前面笔者写了一篇博文: 使用容器编排对go项目进行部署、调试,介绍了在Goland中如何使用容器,由于Goland的容器配置是可视化的,使用起来非常方便,VSCode中也有一个容器插件,但是笔者一直未使用过,因为它默认是连接本机的容器或者Windows下的WSL,也没有直观的图形界面操作可以连接远程的容器,所以一直没去研究如何使用它。
我们通过下图可以看到,在默认情况下Docker Contexts
有一个default
:
可以右键选择“Inspect”查看,笔者的内容如下:
1{
2 "Name": "default",
3 "Metadata": {
4 "StackOrchestrator": "swarm"
5 },
6 "Endpoints": {
7 "docker": {
8 "Host": "npipe:////./pipe/docker_engine",
9 "SkipTLSVerify": false
10 },
11 "kubernetes": {
12 "Host": "https://kubernetes.docker.internal:6443",
13 "SkipTLSVerify": false,
14 "DefaultNamespace": "default"
15 }
16 },
17 "TLSMaterial": {
18 "kubernetes": [
19 "ca.pem",
20 "cert.pem",
21 "key.pem"
22 ]
23 },
24 "Storage": {
25 "MetadataPath": "<IN MEMORY>",
26 "TLSPath": "<IN MEMORY>"
27 }
28}
使用的管道连接方式,与Goland中的Docker for Windows
一样:
在Goland中可以选择
Docker for Windows
、TCP套接字
、Podman
和SSH
,要使用远程容器一般使用的是TCP套接字
和SSH
,笔者使用的是TCP套接字
。
一、连接远程Docker
Goland有界面可选择设置,VSCode下则没有,需要手动设置。在VSCode中可以直接看到目前有哪些docker
连接配置,即docker context
,也可以使用命令查看:
1docker context ls
但是要添加
docker context
,则必须使用命令,目前还没有提供界面操作:
1docker context create docker --docker host=tcp://192.168.0.8:2980
创建好docker context
后,VSCode中就会出现,如果暂时没出现可以点右上角的刷新按钮。
选择刚才创建的
docker
,点后面的勾勾按钮就使用该context
了,其它窗口中就会出现该context
下的所有容器、镜像、网络、卷等信息。
在单个容器上右键,会弹出一系列菜单,执行相应的命令进行相应的操作。
同样地在
IMAGES
窗口中可以对镜像进行一系列操作。这里就不一一介绍了。
需要注意的是执行一些命令后,可能在界面上不能及时刷新,需要手动点右上角的刷新按钮刷新。
二、容器编排
前面有提到如果有编排的容器,则可以执行编排的相应命令。如果执行了Compose Down
则会删除掉编排的容器,也就无法执行Compose Up
了,所以需要使用VSCode的任务来处理。
VSCode菜单终端
/配置任务...
,在弹出的对话框中选择使用模板创建 tasks.json 文件
:
再选择Others 运行任意外部命令的示例
:
此时会生成一个tasks.json
:
1{
2 // See https://go.microsoft.com/fwlink/?LinkId=733558
3 // for the documentation about the tasks.json format
4 "version": "2.0.0",
5 "tasks": [
6 {
7 "label": "echo",
8 "type": "shell",
9 "command": "echo Hello"
10 }
11 ]
12}
修改内容如下:
1{
2 // See https://go.microsoft.com/fwlink/?LinkId=733558
3 // for the documentation about the tasks.json format
4 "version": "2.0.0",
5 "tasks": [
6 {
7 "label": "compose up",
8 "type": "shell",
9 "command": "docker-compose --host \"tcp://192.168.0.8:2980\" -f compose.yml -p dxs up --remove-orphans -d",
10 "problemMatcher": []
11 },
12 {
13 "label": "compose down",
14 "type": "shell",
15 "command": "docker-compose --host \"tcp://192.168.0.8:2980\" -f compose.yml -p dxs down --rmi all --remove-orphans --volumes",
16 "problemMatcher": []
17 }
18 ]
19}
当然,也可以省略前面使用菜单创建tasks.json
的步骤,直接在项目根目录的.vscode
中创建如上内容的tasks.json
。
此时可以运行compose up
和compose down
命令了:
在VSCode的容器窗口中可以执行
compose down
,为什么这里还需要添加一个compose down
任务?
因为窗口中的compose down
只是down
,并不会删除镜像,如果要重新编译部署,在compose up
时发现如果已经有镜像了,则不会再构建镜像了。除非在IMAGES
窗口中手动删除镜像。
而compose down
任务中的命令是添加了一系列参数来删除镜像,删除卷,删除孤立项。
本文编排使用的Dockerfile
以及compose.yml
参见笔者之前的博文:
使用容器编排对go项目进行部署、调试
如本文对你有帮助,欢迎点赞收藏!你的点赞与收藏将成为我写作的动力!
- 原文作者:Witton
- 原文链接:https://wittonbell.github.io/posts/2025/2025-07-14-VSCode中使用容器及容器编排docker-compose/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. 进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。