网站建设与管理就业方向,装企erp管理系统,上海企业招聘信息,连云港做网站制作首先本地已经有 docker 环境存在#xff0c;然后可以拉取 MySQL 镜像。
相关 mysql 仓库地址#xff1a;
https://hub.docker.com/_/mysql/ # 镜像拉取 docker pull mysql:8.0.26docker pull mysql:latest# 查看镜像列表docker image ls等待镜像完成之后就可以启动 mysql 了…首先本地已经有 docker 环境存在然后可以拉取 MySQL 镜像。
相关 mysql 仓库地址
https://hub.docker.com/_/mysql/ # 镜像拉取 docker pull mysql:8.0.26docker pull mysql:latest# 查看镜像列表docker image ls等待镜像完成之后就可以启动 mysql 了注意需要配置一些启动参数 # 启动命令docker run -it --name mysql -p 13306:3306 -e MYSQL_ROOT_PASSWORD12345678 mysql:8.0.28# 如果要后台启动加-d参数docker run -itd --name mysql -p 13306:3306 -e MYSQL_ROOT_PASSWORD12345678 mysql:8.0.28# 查看容器docker ps# 查看容器包括已经停止的docker ps -a# 停止镜像docker kill 容器id# 再次启动已经停止的容器docker start 容器idMySQL 提供了很多环境变量参数可以自定义 MySQL 环境常用的如下
参考地址https://dev.mysql.com/doc/refman/5.7/en/environment-variables.html
参数名说明默认值MYSQL_ROOT_PASSWORDroot 用户的密码my-secret-pwMYSQL_DATABASE自定义新数据库名称MYSQL_USER自定义用户名MYSQL_PASSWORD自定义用户密码MYSQL_ALLOW_EMPTY_PASSWORD是否允许启动 root 密码是空密码非空表示 yes空表示 noMYSQL_RANDOM_ROOT_PASSWORD使用随机 root 密码一般从日志中查找密码非空表示 yes空表示 noMYSQL_ONETIME_PASSWORDroot 使用一次性密码非空表示 yes登录后强制要求修改空表示 noMYSQL_INITDB_SKIP_TZINFOCONVERT_TZ() 获取时区非空表示 disable
一般使用MYSQL_ROOT_PASSWORD就可以了
上面的情况下启动的 MySQL 能够满足基本需求不过每次重启之后数据就丢失了就算是开发环境这样也不能接受的需要挂接本地磁盘方便下次可以访问。
首先可以选择一个本地文件路径如C:/MySQL/data然后映射到/var/lib/mysql增加命令参数 -v C:/MySQL/data:/var/lib/mysql完整命令
docker run -itd --name mysql -p 13306:3306 -e MYSQL_ROOT_PASSWORD12345678 -v D:\DockerRepmysql\data:/var/lib/mysql -v D:\DockerRep\mysql\conf/conf.d:/etc/mysql/conf.d mysql:8.0.28docker run --name mysql -v D:\DockerRep\mysql\conf\my.cnf:/etc/mysql/my.cnf -v D:\DockerRep\mysql\logs:/var/log -v D:\DockerRepmysql\data:/var/lib/mysql -v D:\DockerRep\mysql\conf/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD12345678 -d -i -p 13306:3306 mysql:8.0.22如果还要自定义配置文件可以再增加D:\DockerRep\mysql\conf/conf.d:/etc/mysql/conf.d然后可以用客户端登录了而且下次启动不会丢失数据。