在 Docker 中,容器内部的文件系统路径取决于容器运行时状态和存储驱动类型。以下是关键信息整理:
/app
, /var/www
等)。bash
docker exec -it <容器名或ID> /bin/sh
# 或
docker exec -it <容器名或ID> ls /path/in/container
容器文件实际存储在宿主机上,路径由存储驱动决定:
/var/lib/docker/<存储驱动>/<容器ID>/
overlay2
(现代默认驱动):/var/lib/docker/overlay2/<容器ID>/
aufs
:/var/lib/docker/aufs/
devicemapper
:/var/lib/docker/devicemapper/
bash
docker inspect --format='{{.Id}}' <容器名>
sudo
):
bash
sudo ls /var/lib/docker/overlay2/<容器ID>/merged
merged
目录包含容器内所有文件的联合挂载视图。如果文件存储在数据卷中,路径不同:
- 查看卷的宿主机路径:
bash
docker inspect -f '{{ .Mounts }}' <容器名>
输出示例:
[{volume my_volume /var/lib/docker/volumes/my_volume/_data /app local true }]
宿主机路径为 /var/lib/docker/volumes/my_volume/_data
。
/var/lib/docker
中,但删除容器后文件会被清除。-v
或 --mount
参数)。\\wsl$\docker-desktop-data\data\docker\overlay2\<容器ID>\
bash
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
docker exec -it <容器名> sh
docker inspect
+ 存储驱动目录。volumes
或 bind mounts
。如有进一步场景需求(如特定存储驱动或操作系统),可提供更多细节以便精准定位。