1.查询mysql版本
docker search mysql
2.下载MySQL5.7版本 (这里选择的是第一个mysql镜像, :5.7选择的5.7版本)
docker pull mysql:5.7
3.创建MySQL的挂载目录
mkdir -p /docker/mysql/{conf/data/logs}
创建my.cnf配置文件
vi /docker/mysql/conf/my.cnf
[mysqld]
user=mysql
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
character-set-server=utf8
symbolic-links=0[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid[client]
default-character-set=utf8[mysql]
default-character-set=utf8
4.启动容器
docker run -d -p 3306:3306 --privileged=true -v /docker/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /docker/mysql/logs:/logs -v /docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name root mysql:5.7
命令说明:
-
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口,前面是容器内部通讯端口号,后面是外部访问端口号。
-
-v /docker/mysql/conf/my.cnf:/etc/mysql/my.cnf:将/docker/mysql/conf/my.cnf挂载到容器的/etc/mysql/my.cnf。
-
-v /docker/mysql/logs:/logs:将/docker/mysql目录下的logs目录挂载到容器的 /logs。
-
-v /docker/mysql/data:/var/lib/mysql :将/docker/mysql目录下的data目录挂载到容器的 /var/lib/mysql 。
-
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
5.进入到容器(9c8883bfa18c是mysql的容器id)
docker container exec -it 9c8883bfa18c bash
6.mysql连接
mysql -uroot -p
Mysql8的启动命令如下:
docker run --name mysql -p 3306:3306 -v /Users/liuwq/docker/mysql8/log:/var/log/mysql -v /Users/liuwq/docker/mysql8/data:/var/lib/mysql -v /Users/liuwq/docker/mysql8/conf:/etc/mysql/conf.d/ -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8