gpt4 book ai didi

docker - 如何避免Docker主机和Docker容器同时访问串口?

转载 作者:行者123 更新时间:2023-12-02 20:04:14 27 4
gpt4 key购买 nike

在linux主机中,我可以使用minicom -D /dev/ttyACM0 -b 115200打开一个串行端口,如果在另一个终端上执行上述命令,它将显示Device /dev/ttyACM0 is locked。以上是我的预期行为。

但是,如果我在host中执行minicom -D /dev/ttyACM0 -b 115200,然后使用next命令启动一个容器:

docker run --privileged -idt --name test -v /dev:/dev -v /etc/apt:/etc/apt ubuntu:16.04

在容器中,我执行 minicom -D /dev/ttyACM0 -b 115200,它将显示我成功打开了串行端口。

那么现象是:如果串行端口打印一些信息: Hello world!。主机中的 minicom可能会获得内容 Hello,而容器中的 minicom可能会获得内容 world!,这是随机的。

无论如何,似乎两个minicom将争夺串口的内容。

如果要在主机中打开串行端口,然后在容器中打开串行端口,则建议使行为与主机相同。如果可以,我可以在容器中获取 Device /dev/ttyACM0 is locked吗?

最佳答案

终于,我自己动手了。

docker run --privileged -idt --pid=host --name test -v /var/lock:/var/lock -v /dev:/dev -v /etc/apt:/etc/apt ubuntu:16.04

小型计算机将其锁定文件放在/ var / lock中,现在有了卷容器和主机,对方就可以知道使用了哪个串行。

关于docker - 如何避免Docker主机和Docker容器同时访问串口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51148310/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com