gpt4 book ai didi

docker - 跨 Docker 容器共享内存 : '--ipc=host' vs. '--ipc=shareable'

转载 作者:行者123 更新时间:2023-12-02 18:04:51 63 4
gpt4 key购买 nike

我正在设置两个 docker 容器 - 一个作为服务器在内存中保存数据,另一个作为客户端访问该数据。为此,我相信我需要使用 --ipc在容器之间共享内存的标志。 Docker documentation解释 --ipc旗还不错。根据文档,对我来说有意义的事情正在运行:

docker run -d --ipc=shareable data-server
docker run -d --ipc=container:data-server data-client

但是我读过的所有 Stackoverflow 问题( 1234 )都将两个容器直接链接到主机:
docker run -d --ipc=host data-server
docker run -d --ipc=host data-client

哪个更适合这个用例?如 ipc=host更好,你什么时候用 ipc=shareable ?

最佳答案

来自 doc :

--ipc="MODE" : Set the IPC mode for the container

"shareable": Own private IPC namespace, with a possibility to share it with other containers.

"host": Use the host system’s IPC namespace.

shareable的区别和 host是主机是否可以访问共享内存。
  • IPC (POSIX/SysV IPC) 命名空间提供命名共享内存段、信号量和消息队列的分离。因此,两种模式之间的性能应该没有区别。
  • 共享内存通常被用于科学计算和金融服务行业的数据库和定制(通常是 C/OpenMPI、C++/使用 boost 库)高性能应用程序使用。

  • 考虑到 安全 服务,使用 host将 IPC 命名空间暴露给控制主机的攻击者。与 shareable ,IPC 命名空间只能在容器内部访问,其中可能包含任何攻击。 host存在模式以允许容器与其主机之间的合作。
    往往很难知道提问者的环境和要求的所有细节,所以 host往往是最常推荐的,因为它最容易理解和配置。

    关于docker - 跨 Docker 容器共享内存 : '--ipc=host' vs. '--ipc=shareable',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56878405/

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