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 ```