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.22-jdk12-openjdk-oracle
container_name: webContainer
ports:- 8080:8080volumes:- /usr/local/docker/wdlshop/ROOT:/usr/local/wdlshop/webapps/ROOT
mysql:
image: mysql
restart: always
container_name: mysqlContainer
environment:
MYSQL_ROOT_PASSWORD: q.123456command:--default-authentication-plugin=mysql_native_password--character-set-server=utf8mb4--collation-server=utf8mb4_general_ci--explicit_defaults_for_timestamp=true
--lower_case_table_names=1ports:- 3306:3306volumes:- ./data:/var/lib/mysql
```