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.22-jdk12-openjdk-oracle
    container_name: webContainer
    ports: 
      - 8080:8080
    volumes:
      - /usr/local/docker/wdlshop/ROOT:/usr/local/wdlshop/webapps/ROOT


  mysql:
    image: mysql
    restart: always
    container_name: mysqlContainer
    environment:
      MYSQL_ROOT_PASSWORD: q.123456
    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=1
    ports:
      - 3306:3306
    volumes:
      - ./data:/var/lib/mysql
```
原文地址:https://www.cnblogs.com/A-FM/p/5455785.html