昨晚忘记ssh密码,然后重新改了密码重启了服务器。因为我使用的是docker,docker restart无法启动完整的4个容器(nginx、mysql、前台、后端服务),然后发现了是因为资源不够的原因。
这个是我服务器的配置(比较rubbish)
先修改密码重启服务器后,看下面解决步骤、详情
1.docker重启
systemctl restart docker
2.查看docker容器
docker ps
// 发现docker没有在跑的容器,然后运行
docker ps -a
// 看容器id或者name,docker重启容器
docker restart xxx
// xxx是指容器id或者容器name,我这里则是docker restart mysql
3.发现mysql启动不起来,要么mysql启动了,后端服务器启动不起来。
[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
3.free命令
free -m
或者
free
// 查看服务器内存MB显示,-m就是MB显示大小
然后发现free可用空间没有了,所以docker容器启动不起来了,所以exited,因此增加Swap虚拟内存分区,扩大容量。
4.增加Swap分区
// 创建大小为1024或者512M的交换文件:
// count可以修改,创建多大填多大,bs为单位
dd if=/dev/zero of=/swapfile bs=1M count=1024
// 使用mkswap命令来设置交换文件
mkswap /swapfile1
// 启用交换分区
swapon /swapfile1
// 写入/etc/fstab,以便在引导时启用
/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无法全部启动容器,可以考虑一下资源不够这方面的原因,归根结底还是说明服务器太rubbish哈哈哈哈。