Docker安装Mysql
前提:部署好docker环境
关闭selinux以及防火墙(或放行端口)

查找Mysql镜像

dockerHub官方地址
在上方搜索栏里输入mysql

找到要拉取的镜像版本,在tag下找到版本

或者使用命令行查询

1
docker search mysql

拉取Mysql镜像

不指定版本:

1
2
[root@localhost ~]# docker pull mysql
[root@localhost ~]# docker pull mysql:latest

指定版本号:

1
2
[root@localhost ~]# docker pull mysql:5.7
[root@localhost ~]# docker pull mysql:5.7.38

1
2
3
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7.38 459651132a11 2 months ago 429MB

创建Mysql实例

-v 主机目录:容器目录
/var/lib/mysql (data目录)
/etc/mysql (配置目录)
/var/log/mysql (这个是日志目录)
–privileged=true 是通过root权限操作

1
2
3
4
5
# 自动重启可加入:--restart=always
docker run -p 3306:3306 --name mysql --privileged=true -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.38 --restart=always

# 如果创建时未指定--restart=always ,可通过update 命令设置:
docker update --restart=always 容器名称(或者容器ID)

开机自启
–restart=always
权限提升
–privileged=true
容器有root权限
配置用户
-e MYSQL_ROOT_PASSWORD=123456
设置初始化root用户的密码
指定镜像资源
-d mysql:5.7.38
-d:以后台方式运行实例
mysql:5.7.38:指定用这个镜像来创建运行实例

查询容器状态

1
2
3
4
5
6
[root@localhost /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2438d6d7a495 mysql:5.7.38 "docker-entrypoint.s…" About a minute ago Up About a minute 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql

# 无法启动,查看日志
[root@localhost /]# docker logs 2438d6d7a495

使用配置的账号密码成功连接数据库