如何增加docker容器中/ dev / shm的大小

时间:2015-05-13 09:11:22

标签: docker containers

目前,当我创建新的docker容器时,共享内存目录的大小限制为64MB。但是,我需要增加此大小,因为我的应用程序依赖于此共享内存。 有没有办法增加docker容器中/ dev / shm的大小? 我听说64MB是在docker代码中硬编码的,如何从源代码安装docker并更改/ dev / shm的值?

4 个答案:

答案 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'

更多信息:https://docs.docker.com/compose/compose-file/#shm_size

答案 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 

Link to source

答案 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