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.pswp.cn/web/88946.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/88946.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习入门:让神经网络变得“深不可测“⚡(二)

深度学习入门&#xff1a;让神经网络变得"深不可测" &#x1f9e0;⚡ 系列课程第二弹&#xff1a;深度学习的奇妙世界 前言&#xff1a;从浅到深的华丽转身 哈喽&#xff0c;各位AI探险家&#xff01;&#x1f44b; 欢迎回到我们的"让机器变聪明"系列课…

硅基计划2.0 学习总结 捌 异常与常用工具类

文章目录一、异常1. 防御性编程2. throw关键字3. throws关键字4. 捕获5. finally关键字二、自定义异常类三、常用工具类1. Date以及相关的类1. 创建时间&#xff08;基本弃用&#xff09;2. 捕获系统时间3. 获取当前年月日时分秒4. 日期加减5. 根据字符串创建日期6. 根据当前时…

2025-7-14-C++ 学习 排序(2)

文章目录2025-7-14-C 学习 排序&#xff08;2&#xff09;P1059 [NOIP 2006 普及组] 明明的随机数题目描述输入格式输出格式输入输出样例 #1输入 #1输出 #1说明/提示提交代码P1093 [NOIP 2007 普及组] 奖学金题目背景题目描述输入格式输出格式输入输出样例 #1输入 #1输出 #1输入…

微信131~140

1.在组件中使用store对象的数据 // 要想使用store中的数据以及方法 // 需要从 mobx-miniprogram-bindings 方法将 ComponentWithStore 方法 import { ComponentWithStore } from mobx-miniprogram-bindings // 导入store对象 import { numStore } from ../../../stores/numstor…

微美全息借区块链与DRL算法打造资源管理协同架构,达成边缘计算与区块链动态适配

在当今数字化浪潮汹涌的时代&#xff0c;边缘计算与区块链技术正逐步成为驱动技术革新与业务转型升级的核心动力。当这两项前沿技术相互融合&#xff0c;一个兼具高效性与安全性的任务处理系统便得以构建。为了充分挖掘边缘计算系统的性能潜力&#xff0c;避免任务卸载过程中的…

属性绑定

简写模式二.为什么要这样做布尔型attribute动态绑定多个值

链表算法之【获取链表开始入环的节点】

目录 LeetCode-142题 LeetCode-142题 给定一个链表的头节点head&#xff0c;返回链表开始入环的第一个节点&#xff0c;如果链表无环&#xff0c;则返回null class Solution {public ListNode detectCycle(ListNode head) {// checkif (head null || head.next null)retur…

【网络编程】KCP——可靠的 UDP 传输协议——的知识汇总

文章目录前言UDP 协议UDP 的关键指标/特性UDP 的典型应用场景KCP 协议的基础KCP 的构造KCP 协议特性KCP 的可靠传输机制——ARQ三种 ARQ 机制对比KCP 的选择性重传一、基础机制&#xff1a;选择性重传&#xff08;SR&#xff09;二、KCP 对 SR 的增强策略KCP 的激进重传策略——…

量子计算新突破!阿里“太章3.0”实现512量子比特模拟(2025中国量子算力巅峰)

​​摘要​​2025年量子计算竞争进入​​实用化临界点​​&#xff0c;阿里达摩院发布“太章3.0”量子模拟器&#xff0c;在全球首次实现​​512量子比特全振幅模拟​​&#xff0c;较谷歌Sycamore的53比特提升近10倍算力维度。本文深度解析三大技术突破&#xff1a;​​张量网…

DOM事件绑定时机:解决脚本提前加载导致的绑定失败

引言&#xff1a;一个让无数新手抓狂的常见错误在JavaScript开发中&#xff0c;尤其是在前端领域&#xff0c;有一个让无数新手抓狂的问题&#xff1a;明明写了事件监听代码&#xff0c;点击按钮却没有任何反应&#xff01;更令人困惑的是&#xff0c;代码逻辑看起来完全正确&a…

游戏框架笔记

游戏的数据有哪些类型无非是只读数据&#xff08;各种道具配表里的数据&#xff09;和可读可写数据&#xff08;玩家属性、拥有的物品&#xff09;。游戏框架需要哪些管理器用户数据管理器负责找到数据持久化文件&#xff0c;从中读取指定用户的数据&#xff0c;包括玩家的设置…

【C语言进阶】指针面试题详解(2)

上一期内容&#xff0c;大多数的解题思路写在代码中&#xff0c;没有写在正文中&#xff0c;这就导致系统判断文章质量不高&#xff0c;没有什么数据&#xff0c;这一期将思路写在正文中。注意&#xff1a;运行环境是x86 1.题目1思路&#xff1a;&a是取到了整个数组的地址&…

一文读懂现代卷积神经网络—稠密连接网络(DenseNet)

目录 什么是 DenseNet&#xff1f; 稠密块&#xff08;Dense Block&#xff09;详解 一、稠密块的核心思想 二、稠密块的结构组成 1. 卷积单元&#xff08;的结构&#xff09; 2. 密集连接的具体方式 3. 关键参数&#xff1a;增长率&#xff08;Growth Rate, k&#xff0…

关于僵尸进程

深入理解僵尸进程&#xff1a;成因、危害与解决方案 进程终止的条件 我们先了解一下进程销毁的条件&#xff1a; 调用了exit函数在main函数中执行了return语句 无论采用哪种方式&#xff0c;都会有一个返回值&#xff0c;这个返回值由操作系统传递给该进程的父进程。操作系统不…

深入解析进程、线程与协程:现代并发编程的三大支柱

深入解析进程、线程与协程&#xff1a;现代并发编程的三大支柱在计算资源日益丰富的时代&#xff0c;理解并发执行机制已成为每位开发者的必修课。本文将带你深入探索操作系统中的三大并发模型&#xff1a;进程、线程与协程&#xff0c;揭开它们的神秘面纱。引言&#xff1a;并…

奇安信下一代防火墙SecGate3600

一、实验拓扑&#xff1a;二、实验目的&#xff08;1&#xff09;让内网可以访问外网。&#xff08;2&#xff09;让外网能够访问dmz区域的web服务器。&#xff08;3&#xff09;测试防火墙的防毒功能&#xff0c;并进行检测。三、实验步骤&#xff08;1&#xff09;防火墙配置…

基于STM32的智能抽水灌溉系统设计(蓝牙版)

✌️✌️大家好&#xff0c;这里是5132单片机毕设设计项目分享&#xff0c;今天给大家分享的是基于《基于STM32的智能抽水灌溉系统设计》。 目录 1、系统功能 2.1、硬件清单 2.2、功能介绍 2.3、控制模式 2、演示视频和实物 3、系统设计框图 4、软件设计流程图 5、原理…

CISSP知识点汇总- 通信与网络安全

CISSP知识点汇总 域1---安全与风险管理域2---资产安全域3---安全工程域4---通信与网络安全域5---访问控制域6---安全评估与测试域7---安全运营域8---应用安全开发一、安全网络架构和保护网络组件 1、OSI 7层协议模型 应用层:SMTP、HTTP、SNMP 、TELNET、 FTP、SFTP、POP3、IM…

C++怎么将可变参数传递给第三方可变参数接口

文章目录&#x1f527; 1. 使用 va_list 转发&#xff08;兼容C/C的传统方案&#xff09;⚙️ 2. 模板参数包转发&#xff08;C11 类型安全方案&#xff09;&#x1f9e9; 3. 替代方案&#xff1a;参数封装与适配**方案A&#xff1a;使用 std::initializer_list (同类型参数)**…

服务端实现阿里云OSS直传

介绍 阿里云上传 OSS 有两种方式&#xff0c;一种是普通上传&#xff0c;一种是客户端直传。 普通上传&#xff0c;就是需要先将文件上传到服务端&#xff0c;然后调用接口将文件上传到阿里云。 当然这种方案经常出现不合理的使用方式&#xff0c;即客户端充当服务端的角色&…