Docker -v 的内容不同导致容器启动后效果不同

Docker -v 的内容不同导致容器启动后效果不同

使用有问题-v "%desktopPath%\%folderName%":/dobot/userdata/project:rw,会报文件/dobot/userdata/project/properties/controlCabType.json不存在,使用没有问题-v "%desktopPath%\%folderName%":/dobot/userdata/project/project:rw。该文件/dobot/userdata/project/properties/controlCabType.json是在创建容器映像期间生成的dobotv4vc:v4510b2。执行时docker run,使用相同的容器镜像,只是-v选项后面有区别。我已经给共享目录添加了rw权限,但是还是有问题。问题是什么?

我的容器镜像基于 Debian:bookworm,我的托管系统是 Windows 10。

Docker运行完整指令:

docker run --dns=8.8.8.8 -d --name=crv4 --network bridge ^
    -p 2022:22 -p 2502:502 -p 2503:503 -p 1502:1502 -p 1503:1503     -p 18083:8083    -p 18883:1883 ^
    -p 22000:22000 -p 22001:22001  -p 29999:29999  -p 30004:30004  -p 30005:30005  -p 30006:30006 ^
    -p 40001:40001 -p 40002:40002  -p 40003:40003  -p 40004:40004  -p 40005:40005  -p 40006:40006 ^
    -p 65501:65501 -p 65502:65502  -p 65503:65503  -p 65504:65504  -p 65505:65505  -p 65506:65506 ^
    -p 65511:65511 -p 65512:65512  -p 65513:65513  -p 65514:65514  -p 65515:65515  -p 65516:65516 ^
    -p 65521:65521 -p 65522:65522  -p 65523:65523  -p 65524:65524  -p 65525:65525  -p 65526:65526 ^
    -p 65527:65527  -v "%desktopPath%\%folderName%":/dobot/userdata/project:rw    dobotv4vc:v4510b2

答案1

当你使用

-v "%desktopPath%\%folderName%":/dobot/userdata/project:rw

/dobot/userdata/project正在运行的容器内的目录提供对主机%desktopPath%\%folderName%上的访问。如果容器内运行的程序希望找到/dobot/userdata/project/properties/controlCabType.json,则该文件需要存在于%desktopPath%\%folderName%\properties主机上。您提到该文件是在创建容器映像期间生成的;通过在 上安装卷/dobot/userdata/project,您可以在映像中屏蔽该文件。

-v "%desktopPath%\%folderName%":/dobot/userdata/project/project:rw

该卷安装在 上/dobot/userdata/project/project,并且/dobot/userdata/project本身仍然提供对容器映像中文件的访问(除了目录下的任何内容project)。

相关内容