与Docker容器共享内存(docker版本1.4.1) [英] Shared Memory with Docker containers (docker version 1.4.1)

查看:1676
本文介绍了与Docker容器共享内存(docker版本1.4.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 / p>

当我使用 - ipc选项/#ipc-settingsrel =nofollow>文档我无法让它工作:



docker run - d --ipc = host dockersharedmemor y / 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

转到版本(客户端):go1.3.3

Git commit(client):5bc2ff8 / 1.4.1

操作系统/ Arch(客户端):linux / amd64

服务器版本:1.4.1

服务器API版本:1.16

转到版本(服务器):go1.3.3

Git提交(服务器):5bc2ff8 / 1.4.1



我现在有一个工作示例,结合使用主机上的命令,通过在容器中打出巨大的空间,并结合卷和ipc:
docker运行-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是不是在哪里?


I have 1 process that writes to a specific section of shared memory (i.e. "/falcon" )in a docker container.

Docker image: dockersharedmemory/shmclient

I have another process that initially creates and reads the same section of shared memory(i.e. "/falcon" ) every second in another docker container.

Docker image: dockersharedmemory/shmserver

When I run the two containers using the following commands I am able to read and write in each container respectfully:

docker run -d -v /dev:/dev dockersharedmemory/shmserver

docker run -d -v /dev:/dev dockersharedmemory/shmclient

When I use the "--ipc" option per documentation i can't get it to work:

docker run -d --ipc=host dockersharedmemory/shmserver

docker run -d --ipc=host dockersharedmemory/shmclient

neither

docker run -d dockersharedmemory/shmserver

drunk_feynman

docker run -d --ipc=container:drunk_feynman dockersharedmemory/shmclient

happy_fermi

Client version: 1.4.1
Client API version: 1.16
Go version (client): go1.3.3
Git commit (client): 5bc2ff8/1.4.1
OS/Arch (client): linux/amd64
Server version: 1.4.1
Server API version: 1.16
Go version (server): go1.3.3
Git commit (server): 5bc2ff8/1.4.1

I have a working example now with a combination of the commands on the host by punching huge holes in the container with a combination of volumes and 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

解决方案

You still need -v /dev:/dev what happens if you do

docker run -d -v /dev:/dev --ipc=host dockersharedmemory/shmserver

docker run -d -v /dev:/dev --ipc=host dockersharedmemory/shmclient

If you dont mount bind /dev/ then the container cannot see whats inside /dev/ which is where your IPC/shm resides isnt it ?

这篇关于与Docker容器共享内存(docker版本1.4.1)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆