目前,当我创建新的docker容器时,共享内存目录的大小限制为64MB。但是,我需要增加此大小,因为我的应用程序依赖于此共享内存。 有没有办法增加docker容器中/ dev / shm的大小? 我听说64MB是在docker代码中硬编码的,如何从源代码安装docker并更改/ dev / shm的值?
答案 0 :(得分:12)
您可以通过将可选参数--shm-size
传递给docker run
命令来修改shm大小。默认值为64MB。
例如:
docker run -it --shm-size=256m oracle11g /bin/bash
答案 1 :(得分:9)
如果您使用docker-compose设置docker环境,也可以在docker-compose.yml配置文件中设置共享内存(自3.5版本的文件格式):
build:
context: .
shm_size: '2gb'
答案 2 :(得分:3)
如果您使用的是docker-compose,如果希望容器在运行或your_service.shm_size
时使用/ dev / shm大小,则可以设置your_service.build.shm_size
值当建造时。
示例:
version: '3.5'
services:
your_service:
build:
context: .
shm_size: '2gb' <-- this will set the size when BUILDING
shm_size: '2gb' <-- when RUNNING
答案 3 :(得分:0)
如果有人使用1.10.0之前的旧docker版本并且由于某种原因而无法升级,则有一种变通办法是我设置了shm-size,该方法对我来说很好(您需要sudo权限才能在主机):
sudo mkdir /mnt/dockershm
sudo mount -t tmpfs -o size=1G tmpfs /mnt/dockershm
docker run -d -v /mnt/dockershm:/dev/shm dockerimagetorun:latest