本文编写于 119 天前,最后修改于 112 天前,其中某些信息可能已经过时。

运维真不是人干的事

VM 系统安装失败

取消多余的CD挂载避免冲突

Docker直接安装失败

按官网步骤手动安装

并使用 `--nobest参数安装 跳过19版本降级使用18版本

Docker更新元数据错误

删除yum文件夹内错误的仓库 并添加正确的仓库

yum clean all
yum makecache

Docker管理

systemctl start docker
systemctl status docker
docker ps
docker logs <name> --tail 10 -f

Docker-Compose安装失败

curl的SSL认证失败(未解决)

外部访问 github 下载yml文件手动上传

Docker-Compose管理

进入项目目录内操作

docker-compose up -d
docker-compose down
docker-compose rm

外部访问网页无响应

防火墙设置

增删防火墙设置

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload
firewall-cmd --list-services
firewall-cmd --help

关闭防火墙设置

systemctl stop firewalld.service
systemctl start firewalld.service

执行docker-compose up -d时出现ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule

原因是因为防火墙关闭之后需要重启docker服务

service docker restart

CentOS下Nginx的管理

使用yum install nginx 安装的nginx无法使用nginx指令

systemctl start nginx
systemctl stop nginx
systemctl restart nginx
systemctl status nginx.service

nginx反向代理502-Bad Gateway

SELinux配置将httpd网络连接关闭,将其启用即可

确认问题

getsebool -a |grep httpd_can_network_connect 

设置

setsebool -P httpd_can_network_connect 1 

docke pull 镜像时卡住

下载速度过慢,网络问题,改为USTC的DockerHub镜像或其他镜像

/etc/docker/daemon.json

{"registry-mirrors":["https://registry.docker-cn.com"]}
sudo systemctl daemon-reload
sudo systemctl restart docker

数据库表冲突

SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'flarum_migrations' already exists (SQL: create table `flarum_migrations` (`migration` varchar(255) not null, `extension` varchar(255) null) default character set utf8mb4 collate 'utf8mb4_unicode_ci' engine = InnoDB)

表已存在,初始化冲突,目前表里没有有用数据,所以直接重建数据库

docker exec -it d8de2a09b48e /bin/sh #进入docker内部
mysql -u root -p
use <database>
drop database <database>;
create DATABASE <database>;

重新安装时 二次出现,重置无效,怀疑与数据库缓存有关,把之前使用的mariadb换成了mysql后似乎正常,
重启容器后再次出现问题,后面发现是vol映射错误导致二次初始化数据库导致的表段冲突

部署Flarum时出现谜之错误

Something went wrong while trying to load the full version of this site. Try hard-refreshing this page to fix the error.

前端访问使用的url与后端不一致导致出错

解决:统一nginx与后台的url为域名,不能使用ip访问

总结

还一堆坑没解决,善用搜索引擎能解决80%以上的问题,搜不到也不用方,看log慢慢排查定位错误原因还是能解决的。