我有一个进程在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
当我按documentation使用" - ipc" 选项时,我无法让它工作:
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 version(client):go1.3.3
Git commit(client):5bc2ff8 / 1.4.1
OS / Arch(客户端):linux / amd64
服务器版本:1.4.1
服务器API版本:1.16
转版本(服务器):go1.3.3
Git commit(server):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
答案 0 :(得分:2)
你仍然需要-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 /那么容器看不到你的IPC / shm所在的/ dev /里面是什么呢?