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>
相关推荐
Johny_Zhao13 小时前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
阿白的白日梦1 天前
winget基础管理---更新/修改源为国内源
windows
fetasty1 天前
rustfs加picgo图床搭建
docker
蝎子莱莱爱打怪2 天前
GitLab CI/CD + Docker Registry + K8s 部署完整实战指南
后端·docker·kubernetes
chlk1232 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑2 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件2 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
碳基沙盒2 天前
OpenClaw 多 Agent 配置实战指南
运维
深紫色的三北六号2 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash3 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)