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配置路径"的情况,可能的原因有哪些?如何排查?
技术要点总结
- 容器与 Compose 标签:
Docker Compose 启动的容器会自动携带 com.docker.compose.* 标签,其中包含项目名称、配置文件路径等关键信息。
- WSL 无缝集成:
Windows Docker Desktop 基于 WSL2,用户可在同一个终端窗口内自由切换 Windows 和 Linux 环境,无需额外打开 Linux 终端或虚拟机界面。
- 跨环境文件访问:
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>