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>
相关推荐
考虑考虑7 小时前
cmd局部设置java变量
运维·后端·自动化运维
生活爱好者!8 小时前
哇!影视新玩法!docker部署NEOWATCH NAS
运维·docker·容器
Li Ming&8 小时前
Windows Server 2019 操作系统《保姆级安装教程》
windows·信息与通信
一技安身8 小时前
【信创】银河麒麟V10、统信UOS解压7Z文件
linux·运维·服务器
奔跑的架构师9 小时前
[A-50]ARMv9/v8-DVFS系统架构
linux·arm开发·架构·系统架构·arm
迷途呀9 小时前
CI/CD 自动化部署实践:让代码提交后自动上线
linux·运维·nginx·ci/cd·自动化
闲云自留地9 小时前
动手玩 Nova:Hypervisor、主机聚合、可用分区、虚拟机生命周期实操
运维·架构·openstack
赴生-9 小时前
Liunx 操作系统 进程概念(上)
linux
binqian10 小时前
【linux】OpenSSH升级文档
linux·运维·网络
吴声子夜歌10 小时前
Shell编程——if条件语句
linux·运维·shell