docker容器部署mysql

一、镜像准备

mysql镜像下载地址:https://hub.docker.com/_/mysql

这里以下载5.7.31为例

docker pull mysql:5.7.31

下载后可以通过命令查看

docker images

可以将下载好的命令保存为本地文件,方便日后使用,避免重复下载(会保存在当前目录下)

docker save mysql:5.7.31 -o mysql.5.7.31.tar

可以将保存的镜像文件加载

docker load -i mysql.5.7.31.tar

二、一个简单的实例

运行实例

docker run -d --name mysql --restart always \
  -e MYSQL_ROOT_PASSWORD=admin \
  -e TZ=Asia/Shanghai -p 3306:3306 \
  -v /data/mysql:/var/lib/mysql \
  mysql:5.7.31 \
  --character-set-server=utf8 \
  --collation-server=utf8_general_ci

说明:

  • --name mysql 指定实例名称 “mysql” 可以根据需要更改
  • --restart always 容器退出时总是重启容器
  • -e MYSQL_ROOT_PASSWORD=admin 配置root用户的密码为 “admin”
  • -e TZ=Asia/Shanghai 设置容器时区为 亚洲/上海
  • -p 3306:3306 暴露容器的端口给主机,前面是主机端口,后面是容器端口
  • -v /data/mysql:/var/lib/mysql 容器卷挂载,宿主机的 “/data/mysql” 目录与容器的 "/var/lib/mysql" 挂载
  • --character-set-server=utf8 --collation-server=utf8_general_ci 设置默认编码格式为utf8,解决中文乱码问题

查看mysql日志

docker logs -f mysql

说明:

  • -f 参数持续跟踪日志变化 可以省略
  • mysql 为容器名称,根据实际名称调整

通过shell访问容器内部

docker exec -it mysql bash

通过sql文件初始化数据库

docker exec -i mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /data/db_backup.sql

说明:

  • 第一个 mysql 是容器名称根据实际情况填写
  • /data/db_backup.sql sql文件存放的位置
posted @ 2021-11-18 22:43  喂喂属鼠  阅读(514)  评论(0)    收藏  举报