How to increase the size of the /dev/shm in docker container
Solution 1:
If you're using docker-compose, you can set the your_service.shm_size
value if you want your container to use that /dev/shm size when running or your_service.build.shm_size
when building.
Example:
version: '3.5'
services:
your_service:
build:
context: .
shm_size: '2gb' <-- this will set the size when BUILDING
shm_size: '2gb' <-- when RUNNING
Link to source.
Solution 2:
You can modify shm size by passing the optional parameter --shm-size
to docker run
command. The default is 64MB.
eg:
docker run -it --shm-size=256m oracle11g /bin/bash
Solution 3:
If you use docker-compose to set up your docker environment, it is also possible to set the shared memory in the docker-compose.yml
configuration file:
build:
context: .
shm_size: '2gb'
More info in the compose-file docs:
- version 3
- version 2
Solution 4:
If anybody is using an older docker version prior 1.10.0 and cannot upgrade for some reason, there is a workaround I used to set shm-size which works fine for me (you need sudo-rights to create the mount on the host):
sudo mkdir /mnt/dockershm
sudo mount -t tmpfs -o size=1G tmpfs /mnt/dockershm
docker run -d -v /mnt/dockershm:/dev/shm dockerimagetorun:latest