目前,当我创建新的docker容器的共享内存目录的大小被限制为64 MB。但是,我需要增加这个大小,因为我的应用程序依赖于这个共享内存。有没有办法增加docker容器中/dev/shm的大小?我听说64 MB是硬编码在docker代码中的,如何从源代码安装docker并更改/dev/shm的值?
qnyhuwrf1#
如果你使用的是docker-compose,你可以设置your_service.shm_size的值,如果你想让你的容器在 * running * 时使用/dev/shm的大小,或者在 * building * 时使用your_service.build.shm_size。示例:
your_service.shm_size
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.
ars1skjm2#
您可以通过向docker run命令传递可选参数--shm-size来修改shm大小。例如:
docker run
--shm-size
docker run -it --shm-size=256m oracle11g /bin/bash
p1iqtdky3#
如果使用docker-compose设置Docker环境,还可以在docker-compose.yml配置文件中设置共享内存:
docker-compose.yml
build: context: . shm_size: '2gb'
合成文件文档中的详细信息:
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
sf6xfgos5#
在Docker桌面上,您可以转到Settings->[Docker Engine]并编辑Docker守护程序配置文件以更改shm默认大小。
Settings->[Docker Engine]
shm
{ "default-shm-size" : "128M" }
5条答案
按热度按时间qnyhuwrf1#
如果你使用的是docker-compose,你可以设置
your_service.shm_size
的值,如果你想让你的容器在 * running * 时使用/dev/shm的大小,或者在 * building * 时使用your_service.build.shm_size
。示例:
Link to source.
ars1skjm2#
您可以通过向
docker run
命令传递可选参数--shm-size
来修改shm大小。例如:
p1iqtdky3#
如果使用docker-compose设置Docker环境,还可以在
docker-compose.yml
配置文件中设置共享内存:合成文件文档中的详细信息:
gblwokeq4#
如果有人使用的是1.10.0之前的Docker版本,并且由于某种原因无法升级,那么我可以使用一个变通方法来设置shm-size,这个方法很适合我(您需要sudo权限才能在主机上创建挂载):
sf6xfgos5#
在Docker桌面上,您可以转到
Settings->[Docker Engine]
并编辑Docker守护程序配置文件以更改shm
默认大小。