请教个docker执行容器方面的问题
原本来正常运行的容器,随之我就重启了下docker,执行了下面两行命令
docker compose down
docker compose up -d
网站目录和数据库均做了映射
docker-compose.yml
services:
web:
container_name: huacai
image: ccr.ccs.tencentyun.com/discuzq/dzq
volumes:
- /root/huacai/discuz:/var/lib/discuz
- /root/huacai/mysql-data:/var/lib/mysqldb
- /root/huacai/certs:/etc/nginx/certs
ports:
- 80:80
- 443:443
restart: always
privileged: true
depends_on:
- db
db:
container_name: mariadb
image: mariadb
restart: always
environment:
MARIADB_ROOT_PASSWORD: 666666
ports:
- 3306:3306
之前直接 docker compose up -d
网站是能正常跑起来的,今天突然就是连接不上数据库了。mariadb运行也正常,Navicat 也能连接上,只是里面没有网站的数据库。
执行 docker compose down
意外发现多了个 Network
root@iZuf6iwzbiroik5nqpwpvrZ:~/huacai# docker compose down
[+] Running 3/3
⠿ Container huacai Removed 0.0s
⠿ Container mariadb Removed 0.0s
⠿ Network huacai_default Removed 0.2s
root@iZuf6iwzbiroik5nqpwpvrZ:~/huacai# docker network ls
NETWORK ID NAME DRIVER SCOPE
2e74259452b4 bridge bridge local
d58453e1162c host host local
93742302d20e none null local
通过日志,找到了这两句 err
,谷歌查了下说是表损坏,提供的一些修复方法都是建立在数据库中存在数据的情况下。但我因为我用docker compose down
数据库直接销毁了,只有映射的文件,仔细看这个文件好像也不能导入到数据库中。
huacai | 2023-03-23T12:18:02.048958Z 0 [ERROR] /usr/sbin/mysqld: Table './mysql/user' is marked as crashed and should be repaired
huacai | 2023-03-23T12:18:02.049553Z 0 [Warning] Checking table: './mysql/user'
huacai | 2023-03-23T12:18:02.049579Z 0 [ERROR] 1 client is using or hasn't closed the table properly