【发布时间】:2023-03-20 02:37:01
【问题描述】:
我正在使用 docker bind mount 来映射 Ubuntu 生成的主机 /dev/serial/ 文件夹(其中包含识别符号链接到串行设备,例如 /dev/ttyUSB0)。我正在使用的完整 docker 容器运行命令是
docker run -d --restart always --privileged=true -v /dev/serial:/dev/serial DOCKER_IMAGE_NAME
这在第一次运行时工作正常,但是如果串行设备断开连接并重新连接,则重新创建符号链接。此更改不会传播到 docker 容器中,而是 docker 容器会找到一个空的 /dev/serial 文件夹。我也测试了在主机上和该目录的 docker 容器中手动创建文件,奇怪的是,在这两种情况下,另一种情况下的更改都没有更新。
音量显示为
{
"Type": "bind",
"Source": "/dev/serial",
"Destination": "/dev/serial",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
编辑:Ubuntu 在/dev/serial 文件夹下的两个目录by-path 和by-id 中创建符号链接。
【问题讨论】:
-
在我的情况下,挂载显示完美,即源和目标是正确的,但文件夹内容没有得到更新。重新启动 Docker 最终会暴露文件,即再次建立绑定挂载连接。注意:我正在将 Windows 位置安装到 linux 容器
标签: docker ubuntu device pyserial udev