我使用这篇博文创建了一个 Kerberos sidecar:
Sidecar 可以在 Docker 中启动,并写入 /dev/shm(共享内存)中的票证缓存。
接下来,我有另一个要读取票证缓存的应用程序容器,因此我尝试在两个容器之间使用共享内存。
我尝试了以下方法:
这将以分离模式启动 sidecar:
docker run -d --ipc=host --name ksidecar ksidecar
接下来,我使用相同的命名空间(“Host”)启动应用程序容器。
docker run --ipc=container:host -p 5000:5000 --name myapp myapi
Sidecar 完成了它应该做的事情并写入 /dev/shm。
但
应用容器根本看不到任何值。
我已经尝试修改“-ipc”设置。对我来说最有意义的配置是将--ipc=shareable用于 sidecar,将 --ipc=container:ksidecar用于应用容器。但是当我这样做时,我得到:
docker:来自守护进程的错误响应:无法加入容器 516dcc29a0f421b812380378ecc4f6de0032679319bdea4d2279946f4c3d2be2 的 IPC:不可共享的 IPC(提示:使用 IpcMode:shareable 用于供体容器。
当然,如你所见,我已经做到了。
我可能做错了什么。但是我已经进行了数小时的搜索和各种实验,但仍然无法使其正常工作。
希望有人能给出一个答案或一个例子,说明他们如何使用 Docker 容器完成共享内存。