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>
相关推荐
志栋智能4 小时前
运维超自动化的版本控制与回滚机制
运维·自动化
中云DDoS CC防护蔡蔡4 小时前
DDOS和CC攻击谁更可怕
运维·服务器·经验分享·网络安全·ddos
Ruiery5 小时前
Linux 6.6内核内存管理深度解析(十六):mmap — 用户态“申请内存“的真相
linux·运维·服务器
ClickHouseDB5 小时前
ClickHouse Cloud 与 Snowflake 实时性价比对比:CostBench 测试中的 412 倍差距来
运维·数据库·系统架构
欧米欧5 小时前
Linux系统篇(七),环境变量的底层溯源,核心获取机制与安全应用
linux·运维·服务器
Ruiery5 小时前
Linux 6.6内核内存管理深度解析(十八):KASLR 内核地址空间随机化
linux·运维·服务器·安全
todoitbo6 小时前
群晖NAS部署JmalCloud:Docker安装、文件管理、博客与公网访问完整教程
运维·docker·容器
时间售卖铺6 小时前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生
qetfw6 小时前
UOS MariaDB 数据库:安装、最小权限与备份验证
linux·数据库·mariadb·uos
前端精髓6 小时前
调用大模型API
运维·服务器·microsoft