1.内存溢出问题
当运行某一个容器时,可以看到转态信息,发现并没有运行成功
查看日志
docker logs [容器名称]
可以看到错误信息是否存在下面错误:
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 1073741824 bytes for committing reserved memory.
# An error report file with more information is saved as:
# //hs_err_pid6.log
原因就是内存无法分配的问题
现执行命令 free -m
查看内存是不是还有 最主要的是 看有没有交换空间 swap (这很重要)如果没有交换空间 或者交换空间比较小 要先安装交换空间 或者增大空间
查看内存
free -mh
看输出信息,这是我的内存情况
total used free shared buff/cache available
Mem: 1.8G 1.5G 68M 828K 209M 60M
Swap: 2.0G 1.4G 563M
可以看到我这内存已不满足他需要的内存
创建swapfile
dd if=/dev/zero of=swapfile bs=1024 count=500000
将swapfile设置为swap空间
mkswap swapfile
启用交换空间,这个操作有点类似于mount操作
swapon swapfile
至此增加交换空间的操作结束了,可以使用free命令查看swap空间大小是否发生变化
free -mh
看一下我的
total used free shared buff/cache available
Mem: 1819 1355 63 0 399 234
Swap: 2536 1556 979
那重启容器
docker restart [id前三位或id]