Docker Compose 容器服务查询与文件查看操作指南(Windows Docker Desktop 版)【一】

Docker Compose 容器服务查询与文件查看操作指南(Windows Docker Desktop 版)

适用对象:--

合作单位:--

发布单位:--

目标

本教案将指导 Windows Docker Desktop 用户如何通过容器服务名称,查找其所属的 Docker Compose 项目配置文件(docker-compose.yml),并借助 WSL 在不切换终端的情况下直接查看或操作该文件。

解决相关问题:

1:如果在多个终端窗口同时工作,一个在PowerShell,一个在WSL Bash,它们访问的是同一份Docker环境吗?为什么?

2:从Windows PowerShell切换到WSL环境后,如何确认当前确实处于Linux系统中?

3:如何在Windows PowerShell中不进入WSL环境,直接查看容器标签中记录的docker-compose.yml文件路径?

4:如何在Windows Docker Desktop环境中,通过容器服务名称快速定位其所属的Docker Compose配置文件?

5:在多项目Docker环境中,如何区分不同Compose项目的容器及其配置?

6:在Windows Docker Desktop中,如何不切换终端窗口,实现在PowerShell和Linux Bash之间的无缝切换?

7:在终端会话中频繁切换Windows和Linux环境时,有哪些高效的切换方式和快捷键?

8:如何在同一终端窗口中同时保持Windows和Linux环境状态,实现快速上下文切换?

9:当Docker Compose配置文件位于复杂的Linux目录结构中时,如何在Windows环境中高效地查看和编辑该文件?

9:在Windows Docker Desktop环境中,除了通过WSL查看Linux文件,还有哪些其他方法可以访问容器相关的配置文件?

10:如果遇到"容器标签中找不到Compose配置路径"的情况,可能的原因有哪些?如何排查?

技术要点总结

  1. 容器与 Compose 标签:

Docker Compose 启动的容器会自动携带 com.docker.compose.* 标签,其中包含项目名称、配置文件路径等关键信息。

  1. WSL 无缝集成:

Windows Docker Desktop 基于 WSL2,用户可在同一个终端窗口内自由切换 Windows 和 Linux 环境,无需额外打开 Linux 终端或虚拟机界面。

  1. 跨环境文件访问:

Windows 磁盘(如 C 盘、D 盘)会自动挂载在 WSL 的 /mnt/ 目录下,实现双向文件访问;而 Linux 原生文件(如容器内文件或用户家目录)则需通过 WSL 环境直接访问。

一、查看当前运行中的容器

首先,我们需要确定目标容器是否正在运行,并获取其服务名称。

操作步骤

在 Docker Desktop 终端(PowerShell)中执行以下命令


在windows系统中的desktop的命令终端中找到某个容器所属的Compose相关内容

c 复制代码
PS C:\Users\luich> docker ps
-----------------
CONTAINER ID   IMAGE                       COMMAND                  CREATED        STATUS          PORTS                  NAMES
b76fe44a1f89   dj_nginx:dj_nginx20250907   "/docker-entrypoint...."   4 months ago   Up 28 minutes   0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp, 0.0.0.0:443->443/udp, [::]:443->443/udp   luichunwebsite_nginx
865782fe2504   dj4_big_big:one20250907     "uwsgi --ini /home/l..."   4 months ago   Up 28 minutes   0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp    luichunwebsite_django
PS C:\Users\luich> 

关键信息

从输出中我们提取出两个服务名称(对应 NAMES 列):

luichunwebsite_nginx

luichunwebsite_django

二、查找容器的 Docker Compose 配置信息

Docker 会在通过 Compose 启动的容器中注入一系列以 com.docker.compose 开头的标签,其中包含了 Compose 项目的配置路径。

操作命令

通过 docker inspect 结合 Go 模板过滤出 Compose 相关标签:

c 复制代码
# 关键命令:获取容器的所有Compose标签
docker inspect luichunwebsite_nginx --format='{{range $k, $v := .Config.Labels}}{{printf "%s = %s\n" $k $v}}{{end}}' | findstr "com.docker.compose"

命令说明

  • docker inspect:查看容器底层详细信息。
  • --format:使用 Go 模板语法仅提取标签信息。
  • findstr:Windows PowerShell 中用于筛选包含特定字符串的行。

输出示例

c 复制代码
PS C:\Users\luich> docker inspect luichunwebsite_nginx --format='{{range $k, $v := .Config.Labels}}{{printf "%s = %s\n" $k $v}}{{end}}' | findstr "com.docker.compose"

com.docker.compose.project.config_files = /home/luichun/lc/docker-compose.yml

PS C:\Users\luich>

关键结果

我们关注的是 com.docker.compose.project.config_files,它指明了 Compose 配置文件的完整路径:

c 复制代码
com.docker.compose.project.config_files = /home/luichun/lc/docker-compose.yml

三、通过 WSL 直接查看 Linux 系统中的 Compose 文件

Windows Docker Desktop 默认使用 WSL2 作为后端,容器实际上运行在 WSL 的 Linux 环境中。因此,我们可以直接在 PowerShell 中进入 WSL 环境查看该文件。

1. 进入 WSL 环境

在 PowerShell 中执行:

c 复制代码
wsl

执行后,命令行提示符会变为 Linux 用户格式,例如:

说明:此时终端会话已从 Windows PowerShell 切换至 WSL 中的 Bash(或其他 Linux Shell),但并未开启新的终端窗口,实现了"窗口内环境切换"。

2. 验证当前环境

可执行 uname -a 确认当前为 Linux 系统:

3. 查看 docker-compose.yml 文件

进入配置文件所在目录并查看内容:

c 复制代码
cd /home/luichun/lc
cat docker-compose.yml
也可以直接使用绝对路径:
cat /home/luichun/lc/docker-compose.yml

四、返回 Windows 终端环境

完成对 Linux 文件的操作后,可通过以下方式返回 Windows PowerShell 环境:

方法一:执行 exit 命令

方法二:使用快捷键 【按下 Ctrl + D】

c 复制代码
exit

返回后状态

命令行提示符会从 Linux 用户格式变回 Windows PowerShell 格式:

c 复制代码
luichun@luichun:/mnt/c/Users/luich$ exit
logout
PS C:\Users\luich>
相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式