【Docker】Docker部署运行MySQL
docker部署运行MySQL拉取MySQL也可以跳过拉取步骤直接run这样本地容器不存在的话会自动拉取最新/指定的版本。# 默认拉取最新版本dockerpull mysql# 拉取指定版本MySQLdockerpull mysql:8.4部署运行指令# 这里 \ 是用作换行实际情况下如果放在一行去写就可以删掉\# Linux系统上\会被识别为换行Windows上建议把\删掉dockerrun-d\--namemysql_docker\-p3306:3306\-v./mysql/log:/var/log/mysql\-v./mysql/data:/var/lib/mysql\-v./mysql/conf:/etc/mysql/conf.d\-v./mysql/init:/docker-entrypoint-initdb.d\-v/etc/localtime:/etc/localtime:ro\-eTZAsia/Shanghai\-eMYSQL_ROOT_PASSWORDyour_password\-eMYSQL_ROOT_HOST%\--networkyour-net\--restartalways\--privilegedtrue\mysql[:自己想要的版本]# [:自己想要的版本]如果是想要拉取最新的版本可缺省比如最后一行换为mysql:8.4docker run这是 Docker 的命令用于创建并启动一个新的容器。--name mysql_docker为容器指定一个名称这里名称为mysql_docker。-p 3306:3306必填将容器内部的 3306 端口映射到宿主机的 3306 端口这样可以通过宿主机的 3306 端口访问 MySQL 服务。-e TZAsia/Shanghai \设置mysql服务的时区。-e MYSQL_ROOT_PASSWORDyour_password必填设置环境变量指定 MySQL 的 root 用户密码为your_password。-e MYSQL_ROOT_HOST%设置环境变量指定 MySQL 的 root 用户允许从任何主机连接。-v /usr/local/mysql/log:/var/log/mysql挂载宿主机的/usr/local/mysql/log目录到容器的/var/log/mysql目录用于持久化 MySQL 的日志文件。-v /usr/local/mysql/data:/var/lib/mysql挂载宿主机的/usr/local/mysql/data目录到容器的/var/lib/mysql目录用于持久化 MySQL 的数据文件。-v /usr/local/mysql/conf:/etc/mysql/conf.d挂载宿主机的/usr/local/mysql/conf目录到容器的/etc/mysql/conf.d目录用于持久化 MySQL 的配置文件。-v /usr/local/mysql/init:/docker-entrypoint-initdb.d挂载数据库初始化脚本目录到容器的/docker-entrypoint-initdb.d-v /etc/localtime:/etc/localtime:ro挂载宿主机的/etc/localtime文件到容器的/etc/localtime文件用于同步宿主机的时间设置ro表示以只读方式挂载。--network your-net指定容器连接的docker网络为your-net--restartalways设置容器的重启策略为always意味着无论容器因为什么原因退出Docker 都会自动重启它。--privilegedtrue给予容器额外的权限使其能够访问宿主机的所有设备并且有能力执行一些需要高级权限的操作。-d以分离模式后台模式运行容器mysql是 Docker Hub 上的官方 MySQL 镜像名称[:自己指定的版本]为可选项不包含这个部分默认最新版本。远程连接MySQL主机为docker所部署在的虚拟机/服务器的IP地址密码是mysql服务的密码端口一般都是默认3306。