Nei*_*oFR 10 docker docker-compose docker-volume windows-subsystem-for-linux docker-desktop
我只是在 Docker for Windows 上试用 WSL 2,但我在安装卷时遇到了问题:
version: "3.7"
services:
node:
build: .
container_name: node
hostname: node
volumes:
- ./app:/app
stdin_open: true
Run Code Online (Sandbox Code Playgroud)
容器构建并启动良好,我使用 docker exec 很好地访问它,但/app容器内的文件夹未绑定到我的笔记本电脑app文件夹。但是,正确的路径实际上已正确安装在正在运行的容器上:
(这里我在主机上执行密码,如果它与容器上安装的内容完美匹配)
? app pwd
/mnt/c/Users/willi/devspace/these/app
Run Code Online (Sandbox Code Playgroud)
这是 portainer 的屏幕,它告诉我在容器中安装了哪些路径并且一切都匹配。
我在主机上的 app 文件夹中创建的文件在容器的 app 文件夹中不可见,反之亦然。这很奇怪,我不知道如何调试它。
补充资料:
docker version WSL 中的输出:19.03.12docker-compose version : 1.26.2谢谢
小智 14
正如@Pablo 所提到的,最佳实践似乎是使用 WSL 文件系统来映射卷。
docker run -v <host-path>:<container-path>在 Linux 文件系统而不是 Windows 文件系统中存储绑定安装到 Linux 容器(即,使用)的源代码和其他数据。docker run -v /mnt/c/users:/users(/mnt/c从 Windows 安装的位置)。docker run -v ~/my-project:/sources <my-image>where的命令~被 Linux shell 扩展为$HOME.现在一切正常,看来我的问题是我的 WSL 发行版仍然是版本 1。您可以使用以下命令验证它: wsl -l -v
NAME STATE VERSION
* docker-desktop-data Stopped 2
docker-desktop Stopped 2
Ubuntu-20.04 Running 2 <- This was at 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23961 次 |
| 最近记录: |