mysql容器使用

一、镜像使用的部分介绍

  1. 创建一个简单的mysql容器
    docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
  2. 宿主机没有安装msql的情况下,可以通过docker命令连接mysql
  • 通过容器连接远程mysql
    docker run -it --rm mysql mysql -hsome.mysql.host -usome-mysql-user -p
  • 通过命令行连接本地mysql容器(--network docker网络,同一网络下的容器可以通过容器名称通信)
    docker run -it --network some-network --rm mysql mysql -hsome-mysql -uexample-user -p
  1. 进入容器内部
    docker exec -it some-mysql bash
  2. 通过docker查看容器运行日志
    docker logs some-mysql
  3. 使用自定义mysql配置文件
    $ docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
  4. 环境变量
  • MYSQL_ROOT_PASSWORD:root用户密码
  • MYSQL_DATABASE:在映像启动时创建的数据库的名称,如果创建了新用户,该用户将被授予这个数据库的超级用户访问权限
  • MYSQL_USER,MYSQL_PASSWORD:创建新用户并设置该用户的密码
  • MYSQL_ALLOW_EMPTY_PASSWORD:注意,这个一般不使用,如果值为yes将允许使用 root 用户的空白密码启动容器,太危险了⚠️
  • MYSQL_RANDOM_ROOT_PASSWORD:如果值为yes,将为root用户生成随机初始密码(使用pwgen)并打印到屏幕上
  • MYSQL_ONETIME_PASSWORD:一次性密码,首次登录要求修改密码
  1. 数据持久化,/my/own/datadir替换成你本地目录或者volume
    docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
  2. 备份数据
    docker exec some-mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/all-databases.sql
  3. 恢复数据
    docker exec -i some-mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /some/path/on/your/host/all-databases.sql

二、使用

  1. 创建数据卷
  • docker volume create mysql_data:data用于数据持久化,一般配这个就够了
  • docker volume create mysql_conf:conf配置文件,如果需要使用自定义配置文件的话
  1. 创建mysql容器:
    docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=YourPassWord -v mysql_data:/var/lib/mysql -v mysql_conf:/etc/mysql/conf.d mysql:latest
  2. 自动运行
  • 创建时加上参数:--restart=always
  • 在现有容器上加自动运行:
    docker container update --restart=always mysql
posted @ 2024-09-19 20:01  luckytian  阅读(92)  评论(0)    收藏  举报