我有 1 个进程写入 docker 容器中共享内存的特定部分(即 "/falcon")。
Docker 镜像:dockersharedmemory/shmclient
我有另一个进程,它最初在另一个 docker 容器中每秒创建和读取共享内存的同一部分(即 "/falcon")。
Docker 镜像:dockersharedmemory/shmserver
当我使用以下命令运行两个容器时,我可以分别在每个容器中读写:docker run -d -v /dev:/dev dockersharedmemory/shmserver
docker run -d -v /dev:/dev dockersharedmemory/shmclient
当我使用 "--ipc"每个选项documentation我无法让它工作:docker run -d --ipc=host dockersharedmemory/shmserver
docker run -d --ipc=host dockersharedmemory/shmclient
两者都不docker run -d dockersharedmemory/shmserver
drunk_feynman
docker run -d --ipc=container:drunk_feynman dockersharedmemory/shmclient
happy_fermi
客户端版本:1.4.1
客户端 API 版本:1.16
Go 版本(客户端):go1.3.3
Git 提交(客户端):5bc2ff8/1.4.1
操作系统/Arch(客户端):linux/amd64
服务器版本:1.4.1
服务器 API 版本:1.16
Go 版本(服务器):go1.3.3
Git 提交(服务器):5bc2ff8/1.4.1
我现在有一个工作示例,其中包含主机上的命令组合,方法是使用卷和 ipc 的组合在容器中打出大洞:docker run -d -v /dev/shm:/dev/shm --ipc=host dockersharedmemory/shmserver
docker run -d -v /dev/shm:/dev/shm --ipc=host dockersharedmemory/shmclient
请您参考如下方法:
你仍然需要 -v/dev:/dev
如果你这样做会发生什么
docker run -d -v /dev:/dev --ipc=host dockersharedmemory/shmserver
docker run -d -v /dev:/dev --ipc=host dockersharedmemory/shmclient
如果你不挂载 bind/dev/那么容器就看不到/dev/里面有什么,这不是你的 IPC/shm 所在的地方吗?