这里以安装8.0.2为示例
下载镜像运行
- 下拉镜像
docker pull mysql:8.0.20
- 启动镜像
docker run -p 3306:3306 --name mysql-8.0.20 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.20
- 启动成功后,进入容器内部拷贝配置文件,到宿主主机的自行指定目录
docker cp mysql-8.0.20:/etc/mysql ~/
这里如果提示权限不足,可以先拷贝的当前用户目录,再移动过去即可。
- 关闭并删除容器,重新根据下方的配置文件运行即可
docker stop mysql-8.0.20
docker rm mysql-8.0.20
运行容器
- 参数说明
# 端口映射
-p
# 自定义容器名称
--name mysql-8.0.20
# 挂载文件权限设置(容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限)
--privileged=true
# 设置开机后自动重启容器
--restart unless-stopped
# 挂载配置文件 宿主机:容器目录
-v /docker/mysql/mysql:/etc/mysql
# 挂载日志
-v /docker/mysql/logs:/logs
# 挂载数据文件 持久化到主机,
-v /docker/mysql/data:/var/lib/mysql
# 容器时间与宿主机同步
-v /etc/localtime:/etc/localtime
# 设置密码
-e MYSQL_ROOT_PASSWORD=123456
# 后台运行容器 根据mysql:8.0.20镜像
-d mysql:8.0.20
- 运行命令
# 安装mysql-8.0
docker run \
-p 3306:3306 \
--name mysql-8.0.20 \
--privileged=true \
--restart unless-stopped \
-v /docker/mysql/mysql:/etc/mysql \
-v /docker/mysql/logs:/logs \
-v /docker/mysql/data:/var/lib/mysql \
-v /etc/localtime:/etc/localtime \
-e MYSQL_ROOT_PASSWORD='xxx' \
-d mysql:8.0.20
Q.E.D.