有没有办法全局设置 /dev/shm 的大小,这样 --shm-size 标志不需要设置为 docker run 的一部分?

dwa*_*rd4 4 containers docker

我希望能够将 /dev/shm 预设为与 64 MB 不同的值,以便我启动的任何容器都会自动采用该新值。

我知道我可以跑

docker run --shm-size=2G some-container
Run Code Online (Sandbox Code Playgroud)

但我希望能够做到这一点而不必添加 --shm-size 标志。这可能吗?

atl*_*ine 6

您可以在以下位置设置默认值/etc/docker/daemon.json

shubuntu1@shubuntu1:/etc/docker$ cat daemon.json
{
    "default-shm-size": "1G"
}
Run Code Online (Sandbox Code Playgroud)

如果没有此文件,您可以新建一个文件并为其添加配置。

修改后,重启docker服务:

sudo systemctl restart docker
Run Code Online (Sandbox Code Playgroud)

然后,使用下一个命令确认:

shubuntu1@shubuntu1:/etc/docker$ docker run --rm -it ubuntu df -h | grep shm
shm             1.0G     0  1.0G   0% /dev/shm
Run Code Online (Sandbox Code Playgroud)

可以看到共享内存已经设置为1G,就是你设置的值daemon.json,具体参考官方指导