wat*_*dog 7 java redis node.js docker docker-compose
我正在本地 Windows 计算机上托管的 docker 容器上运行我的 redis 服务器,但由于此警告,我无法存储数据
WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
Run Code Online (Sandbox Code Playgroud)
有什么方法可以启用此功能吗?
version: '3'
services:
redis:
image: "redis"
ports:
- "6379:6379"
networks:
- my-service
networks:
my-service:
external: true
Run Code Online (Sandbox Code Playgroud)
小智 4
首先,它与Redis镜像或容器本身无关,并且没有任何直接的方法可以通过docker-compose或docker run命令来解决它。它仅与主机操作系统相关,在 Windows 情况下是 Linux 虚拟机管理程序,docker 在其上运行。
如果您像我一样使用 WSL2 后端在 Windows 上运行 docker,则只需启动 WSL 发行版并运行即可临时更改它:
sudo sysctl -w vm.overcommit_memory=1
Run Code Online (Sandbox Code Playgroud)
顺便说一句,它不会持久。不幸的是,处理这个问题需要对 Linux 有很好的了解,以应对用户权限、奇怪的访问拒绝、包管理器等问题,对于来自 Windows 背景的我来说,进一步深入研究这个问题是一项艰巨的任务。
| 归档时间: |
|
| 查看次数: |
7505 次 |
| 最近记录: |