当前位置: 首页 > news >正文

VSCode中使用容器及容器编排docker-compose

前面笔者写了一篇博文:使用容器编排对go项目进行部署、调试,介绍了在Goland中如何使用容器,由于Goland的容器配置是可视化的,使用起来非常方便,VSCode中也有一个容器插件,但是笔者一直未使用过,因为它默认是连接本机的容器或者Windows下的WSL,也没有直观的图形界面操作可以连接远程的容器,所以一直没去研究如何使用它。

我们通过下图可以看到,在默认情况下Docker Contexts有一个default

在这里插入图片描述

可以右键选择“Inspect”查看,笔者的内容如下:

{"Name": "default","Metadata": {"StackOrchestrator": "swarm"},"Endpoints": {"docker": {"Host": "npipe:////./pipe/docker_engine","SkipTLSVerify": false},"kubernetes": {"Host": "https://kubernetes.docker.internal:6443","SkipTLSVerify": false,"DefaultNamespace": "default"}},"TLSMaterial": {"kubernetes": ["ca.pem","cert.pem","key.pem"]},"Storage": {"MetadataPath": "<IN MEMORY>","TLSPath": "<IN MEMORY>"}
}

使用的管道连接方式,与Goland中的Docker for Windows一样:

在这里插入图片描述
在Goland中可以选择Docker for WindowsTCP套接字PodmanSSH,要使用远程容器一般使用的是TCP套接字SSH,笔者使用的是TCP套接字

一、连接远程Docker

Goland有界面可选择设置,VSCode下则没有,需要手动设置。在VSCode中可以直接看到目前有哪些docker连接配置,即docker context,也可以使用命令查看:

docker context ls

在这里插入图片描述
但是要添加docker context,则必须使用命令,目前还没有提供界面操作:

docker 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:

{// See https://go.microsoft.com/fwlink/?LinkId=733558// for the documentation about the tasks.json format"version": "2.0.0","tasks": [{"label": "echo","type": "shell","command": "echo Hello"}]
}

修改内容如下:

{// See https://go.microsoft.com/fwlink/?LinkId=733558// for the documentation about the tasks.json format"version": "2.0.0","tasks": [{"label": "compose up","type": "shell","command": "docker-compose --host \"tcp://192.168.0.8:2980\" -f compose.yml -p dxs up --remove-orphans -d","problemMatcher": []},{"label": "compose down","type": "shell","command": "docker-compose --host \"tcp://192.168.0.8:2980\" -f compose.yml -p dxs down --rmi all --remove-orphans --volumes","problemMatcher": []}]
}

当然,也可以省略前面使用菜单创建tasks.json的步骤,直接在项目根目录的.vscode中创建如上内容的tasks.json

此时可以运行compose upcompose down命令了:

在这里插入图片描述
在VSCode的容器窗口中可以执行compose down,为什么这里还需要添加一个compose down任务?

因为窗口中的compose down只是down,并不会删除镜像,如果要重新编译部署,在compose up时发现如果已经有镜像了,则不会再构建镜像了。除非在IMAGES窗口中手动删除镜像。

compose down任务中的命令是添加了一系列参数来删除镜像,删除卷,删除孤立项。

本文编排使用的Dockerfile以及compose.yml参见笔者之前的博文:使用容器编排对go项目进行部署、调试

如本文对你有帮助,欢迎点赞收藏!你的点赞与收藏将成为我写作的动力!

http://www.dtcms.com/a/279731.html

相关文章:

  • L1与L2正则化详解:原理、API使用与实践指南
  • FastAPI + gRPC 全栈实践:Windows 开发到 Ubuntu 部署全指南
  • JVM监控及诊断工具-命令行篇
  • ubuntu 22.04 anaconda comfyui安装
  • 8.数据库索引
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘collections’问题
  • WIFI MTU含义 ,协商修改的过程案例分析
  • ansys2021R Fluent 的UDF配置问题
  • 开疆智能EtherCAT转CANopen网关连接磁导航传感器配置案例
  • 《美术教育研究》是什么级别的期刊?是正规期刊吗?能评职称吗?
  • Python项目中Protocol Buffers的应用示例
  • MySQL Innodb Cluster介绍
  • 零基础 “入坑” Java--- 十一、多态
  • Spring Boot + Vue2 实现腾讯云 COS 文件上传:从零搭建分片上传系统
  • 并发编程核心概念详解:进程、线程与协程的本质与差异
  • 解锁HTTP:从理论到实战的奇妙之旅
  • Windows系统使用docker部署项目(有网与离线)
  • LeetCode--45.跳跃游戏 II
  • 破局与重构:文心大模型开源的产业变革密码
  • 北京饮马河科技公司 Java 实习面经
  • vscode 打开项目时候,有部分外部依赖包找不到定义或者声明,但是能使用cmake正常编译并且运行
  • C#——数据与变量
  • 软件构件组装三层次体系:定制、集成与扩展的深度解析
  • Product Hunt 每日产品热榜 | 2025-07-14
  • 【氮化镓】非辐射复合载流子诱导的瞬态缺陷机制
  • 实现dify关于python安装包功能的实现
  • java进阶(三):单例、工厂、模版方法与代理模式详解
  • 【25-cv-7832】TME携瓢虫少女动漫发起商标+版权维权案,近百家店铺被冻!!
  • Spring Boot 实现图片防盗链:Referer 校验与 Token 签名校验完整指南
  • 【html基本界面】