让其默认的共享内存只有64m,因为我在容器内同时运行多个wrf实验,数量一多就遇到bus error,因为共享内存不足导致。网上搜的方法

第一种是重新制作容器,我嫌麻烦。

第二种是修改hostconfig.json,详见如何修改容docker容器的shmsize共享内存大小_--shm-size-CSDN博客

但是这种方法要重启docker服务,由于我的服务器是有多个容器,也有别人在用,如果重启,担心影响别人使用。因此,我一直问豆包和ds,老是让我重做容器,

最后给了一个新方案,我试了下是成功的。

在容器外执行:

[root@localhost ~]# mount | grep fab332271e79 | grep shm

fab33是我的容器名,然后会返回一个路径信息;记住

/var/lib/docker/containers/fab332271e79bf677fd429f53c5896b710950b20c6d5071c4748ee5f1a0302b0/mounts/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=65536k)

最后执行:

mount -o remount,size=8G /var/lib/docker/containers/fab332271e79bf677fd429f53c5896b710950b20c6d5071c4748ee5f1a0302b0/mounts/shm

把红色背景的内容替换为上一步返回的路径(蓝色背景部分)即可了

进入容器,查询 df -h /dev/shm 发现变成了8g

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐