Currently When I create new docker container the size of the shared memory directory is limited to 64MB. But, I need to increase this size since my application depend on this shared memory. Is there any way to increase the size of /dev/shm in docker container? I heard that the 64MB is hard coded in the docker code, How to install docker from source and change the value of the /dev/shm?

1

4 Answers

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.

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 
4

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:

0

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 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy