docker内存不够无法启动容器。Exited (1) 14 seconds ago,新增Swap虚拟内存分区

发布于:2023-02-09 ⋅ 阅读:(20) ⋅ 点赞:(0)

昨晚忘记ssh密码,然后重新改了密码重启了服务器。因为我使用的是docker,docker restart无法启动完整的4个容器(nginx、mysql、前台、后端服务),然后发现了是因为资源不够的原因。

这个是我服务器的配置(比较rubbish) 

修改密码重启服务器后,解决步骤、详情:


第一步:docker重启 

systemctl restart docker

第二步:查看docker容器

docker ps
// 发现docker没有在跑的容器,然后运行
docker ps -a
// 看容器id或者name,docker重启容器
docker restart xxx
// xxx是指容器id或者容器name,我这里则是docker restart mysql

第三步:重启后查看docker运行 

[root@centos /]# docker ps
CONTAINER ID   IMAGE                      xxx
161xxxxxxx   blog-jdk8-spring-boot-jar    xxx                  
a1221cxxxx   blog                         xxx
11cxzxxxxx   nginx                        xxx

[root@centos /]# docker ps -a
CONTAINER ID   IMAGE                    STATUS
xxxxxxxxxx    mysql                       Exited (1) 14 seconds ago
xxxxxxxxxx    blog-jdk8-spring-boot-jar   Up 47 minutes
a1221cxxxx    blog                        Up 47 minutes
11cxzxxxxx    nginx                       Up 47 minutes

第四步:排除所有问题,指向内存不够原因

free -m 
或者
free
// 查看服务器内存MB显示,-m就是MB显示大小

然后发现free可用空间没有了,所以docker容器启动不起来了,所以exited,因此增加Swap虚拟内存分区,扩大容量。

最重要的!!!

第五步:增加Swap分区

// 创建大小为1024或者512M的交换文件:
// count可以修改,创建多大填多大,bs为单位
dd if=/dev/zero of=/swapfile bs=1M count=1024

// 使用mkswap命令来设置交换文件
mkswap /swapfile1
// 启用交换分区
swapon /swapfile1
// 写入/etc/fstab,以便在docker或者服务器重启时不被删除
/swapfile1 swap swap defaults 0 0
// 然后再输入free或者free -m查看是否添加
[root@centos /]# free
      total   used   free   shared  buff/cache available
Mem: 2046684  1613492  77932   844    355260      275376
Swap: 524284    0      524284

至此,创建好了Swap分区,然后重新docker restart mysql(或者docker restart你们自己的容器,然后就成功了)

[root@centos /]# docker restart mysql
mysql
[root@VM-12-15-centos /]# free
      total    used        free      shared  buff/cache   available
Mem: 2046684   1830204    73684       400      142796       64976
Swap: 524284  231288    292996
// 只要发现Swap的used被用了,说明启效果了

如果大家遇到服务器重启后docker无法全部启动容器,可以考虑一下资源不够这方面的原因,相信自己写的配置没问题!!!

个人纯原创的公众号:安哥说前端,会分享一些自己在项目上用到的组件、封装、大前端或者业务逻辑知识等,希望大家能关注,谢谢!

本文链接来自自己的公众号原创文章链接:解决忘记密码后重启服务器,docker下的容器启动不起来的原因重启服务器,解决docker开启容器无法启动问题https://mp.weixin.qq.com/s?__biz=Mzk0MzM4OTkwMA==&mid=2247483685&idx=1&sn=9c064c68fb91029993d60bf25b1a4a79&chksm=c335ec86f4426590dac3c5b0218d0d39686f6e40736261d6be7374cafd47d0ba864837b62c3e#rd

 


网站公告

欢迎关注微信公众号 关注公众号领取新人福利

今日签到

点亮在社区的每一天
去签到