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>
相关推荐
${王小剑}2 小时前
在离线ubuntu上布置深度学习环境
linux·运维·ubuntu
Java程序之猿3 小时前
Linux使用U盘安装centos及报错You might want to saue “/run/initramfs/rdsosreport.txt“ 处理
linux·运维·服务器
goodlook01233 小时前
安装最新版本docker-26.1.4
运维·docker·容器
❀͜͡傀儡师3 小时前
docker安装部署PostgreSQL带有pgvector扩展向量数据(高维数组)
docker·postgresql·容器·pgvector
CC.GG3 小时前
【Linux】进程概念(五)(虚拟地址空间----建立宏观认知)
java·linux·运维
L1624764 小时前
通用 Linux 系统存储选型总手册(MBR ,GPT,ext4,xfs)
linux·服务器
无限进步_4 小时前
【C++】大数相加算法详解:从字符串加法到内存布局的思考
开发语言·c++·windows·git·算法·github·visual studio
IT_Octopus4 小时前
Docker 镜像打的包有1.3个G 多阶段构建缩小镜像体积(不算成功)
运维·docker·容器
明洞日记4 小时前
【软考每日一练008】Web 服务器性能测试指标
运维·服务器·操作系统·软考