[当我使用ipc=host
运行docker映像并调用shmget
在容器中分配共享内存时,我可以运行ipcs -m
在主机上显示此共享内存信息。并且当容器停止或删除时,共享内存已保留,我必须手动删除共享内存。
因此,如果容器以ipc=host
运行,则在容器停止或删除时,该容器分配的共享内存不会被破坏。
但是如果我使用默认的ipc模式运行docker映像,则无法使用ipc -m
在主机上显示共享内存信息。
当容器被破坏或停止时,是否有任何方法可以知道共享内存是否被破坏。还是从docker实现的角度来看,当容器(不使用ipc=host
运行)被破坏或停止时,共享内存将被释放吗?
我认为答案是肯定的。由docker分配的所有资源将在停止或删除时释放。但是对于主机模式,某些资源属于主机,容器请勿释放它。