VPS海外Ubuntu 22.04装Docker报错137修复指南
文章分类:行业新闻 /
创建时间:2026-01-16
VPS海外Ubuntu 22.04装Docker报错137修复指南
在VPS海外服务器上用Ubuntu 22.04系统安装Docker时,部分用户会遇到报错137的问题。这个错误不仅阻碍安装进程,还可能影响后续容器部署。本文结合实际运维经验,从现象识别到具体解决,带你一步步排查修复。
报错现象:内存告急的“信号灯”
安装过程中,终端通常会弹出一串长错误提示,核心信息类似“memory cgroup out of memory”。具体表现为执行安装命令后,Docker服务启动失败,日志里反复出现“exit status 137”的报错。这是系统在明确提醒:当前内存资源不足以支撑Docker运行。
问题根源:内存不足是主因
报错137的核心诱因往往和内存资源吃紧有关。Docker安装及运行时需要占用一定系统资源,尤其是内存。若VPS海外服务器内存配置过低(比如1GB以下),或交换空间(Swap,系统临时存储数据的磁盘区域)设置不合理、资源限制参数冲突,都可能触发这一错误。简单来说,就是“内存不够用了”。
4步解决:从临时救急到长期优化
1. 快速扩容:升级服务器内存
最直接的解决方式是升级VPS海外服务器的内存配置。联系服务商选择合适的内存套餐(建议至少2GB起步),完成配置后重启服务器。升级后内存空间增大,Docker安装和运行的资源需求能得到基本满足,适合预算允许的用户。
2. 临时救场:创建/调整交换空间
若暂时无法升级内存,可通过扩展交换空间缓解压力。交换空间能将磁盘部分区域模拟为内存使用,虽速度慢于物理内存,但能解燃眉之急。
- 检查现有交换空间:执行命令`swapon --show`,若输出为空说明未启用。
- 创建4GB交换文件(可根据需求调整大小):
```
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile # 限制仅root读写
sudo mkswap /swapfile # 格式化交换空间
sudo swapon /swapfile # 启用交换分区
```
- 永久生效:编辑`/etc/fstab`文件,末尾添加`/swapfile none swap defaults 0 0`,保存后重启生效。
3. 精准调参:修改Docker资源限制
Docker默认配置可能与当前服务器环境不匹配,通过调整资源限制参数可避免过度占用内存。
- 打开配置文件:`sudo nano /etc/docker/daemon.json`
- 添加以下内容(示例为内存限制2GB):
```
{
"default-runtime": "runc",
"runtimes": {
"runc": {
"path": "runc",
"runtimeArgs": [
"--systemd-cgroup",
"--memory-swappiness=0", # 不使用交换空间
"--oom-kill-disable", # 禁用OOM杀手
"--memory=2g" # 限制内存2GB
]
}
}
}
```
- 保存并重启Docker:`sudo systemctl restart docker`
4. 清理冗余:释放内存“隐藏空间”
系统缓存和老旧Docker镜像长期堆积,会悄悄吃掉内存空间。及时清理能释放更多资源:
- 清理系统缓存:`sudo apt-get clean`(删除apt下载的安装包)
- 清理Docker冗余:`docker system prune -a`(删除无用容器、镜像和网络)
完成以上步骤后,再次尝试安装Docker,报错137问题通常能得到解决。若仍有异常,建议检查服务器是否存在其他资源限制(如CPU配额),或联系VPS服务商确认底层环境是否正常。
VPS海外服务器的内存管理是保障Docker稳定运行的关键。无论是临时扩展交换空间,还是长期升级内存配置,核心都是确保资源充足。掌握这些方法,后续部署容器时就能更从容。
工信部备案:苏ICP备2025168537号-1