Docker的MySQL镜像, 实行数据,配置信息,日志持久化

时间:2023-03-10 06:28:51
Docker的MySQL镜像, 实行数据,配置信息,日志持久化

Docker的MySQL8镜像, 实行数据持久化

使用Docker的MySQL8.0.17实例化一个容器之后需要对其进行数据持久化操作, 使用

docker docker run -p 7797:3306 --name mysql \
-v /usr/local/docker/mysqlDocker/conf:/etc/mysql \
-v /usr/local/docker/mysqlDocker/logs:/var/log \
-v /usr/local/docker/mysqlDocker/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=q.123456 \
-d mysql:8.0.17

但是容器启动总是失败, 最后发现可能是因为MySQL8的配置文件的问题, 将配置文件的持久化 去掉 之后可以成功启动. 但是配置文件的持久化还是需要做的, 这个时候用已经成功地MySQL容器 将其中的配置文件拷贝出来.

拷贝mysql容器中的配置文件到 /usr/local/docker/mysqlDocker/conf 下.

docker
docker cp mysql:/etc/mysql .
mv mysql/ conf/

然后执行 docker 实例化MySQL容器的命令, 这样数据持久化就不会出现问题了

```
version: '3.1'
services:
web:
restart: always
image: tomcat:9.0.-jdk12-openjdk-oracle
container_name: webContainer
ports:
- :
volumes:
- /usr/local/docker/wdlshop/ROOT:/usr/local/wdlshop/webapps/ROOT mysql:
image: mysql
restart: always
container_name: mysqlContainer
environment:
MYSQL_ROOT_PASSWORD: q.
command:
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=
ports:
- :
volumes:
- ./data:/var/lib/mysql
```