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

rqcrx0a6  于 2023-03-01  发布在  Docker
关注(0)|答案(5)|浏览(840)

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

qnyhuwrf

qnyhuwrf1#

如果你使用的是docker-compose,你可以设置your_service.shm_size的值,如果你想让你的容器在 * running * 时使用/dev/shm的大小,或者在 * building * 时使用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.

ars1skjm

ars1skjm2#

您可以通过向docker run命令传递可选参数--shm-size来修改shm大小。
例如:

docker run -it --shm-size=256m oracle11g /bin/bash
p1iqtdky

p1iqtdky3#

如果使用docker-compose设置Docker环境,还可以在docker-compose.yml配置文件中设置共享内存:

build:
  context: .
  shm_size: '2gb'

合成文件文档中的详细信息:

  • 版本3
  • 版本2
gblwokeq

gblwokeq4#

如果有人使用的是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
sf6xfgos

sf6xfgos5#

在Docker桌面上,您可以转到Settings->[Docker Engine]并编辑Docker守护程序配置文件以更改shm默认大小。

{
   "default-shm-size" : "128M"
}

相关问题