1 示例

1
2
docker pull mysql
$ docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
1
2
3
#启动
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=Lzslov123! -d mysql
-d 表示作为一个守护进程在后台运行
1
2
3
docker run -p 3306:3306 --name mysql \
-e MYSQL_ROOT_PASSWORD=PASSWORD \
-d --user root hub.ieucd.com/library/mysql:5.7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
直接挂载目录可能失败,可以先运行个实例,把目录拷出来
Docker cp mysql:/etc/mysql /etc

先手动创建
rm -rf /var/lib/mysql/* /etc/mysql/*
mkdir -p /etc/mysql/my.cnf.d /etc/mysql/conf.d /var/log/mysql /data/mysql;

root用户下不用修改拥有者为mysql(uid=999):
# chown -R 999:999 /etc/my.cnf /etc/mysql/my.cnf.d /var/log/mysql /data/mysql;

然后把临时实例删了
docker rm fcc358a6085b

docker run -p 43306:3306 --name mysql \
--restart=always \
-v /etc/mysql:/etc/mysql/ \
-v /var/log/mysql:/var/log/mysql \
-v /var/lib/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD="MdyEc3Ukod" \
-e MYSQL_ROOT_HOST='%' \
-d hub.ieucd.com/library/mysql:8 \
--default-storage-engine=INNODB \
--max_connections=200 \
--default-authentication-plugin=mysql_native_password \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_utf8_general_ci
1
2
3
4
5
6
7
8
9
10
#进入容器
docker exec -it mysql bash

#登录mysql
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

#添加用户
CREATE USER 'ieucd'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'ieucd'@'%';

2 参考

https://www.runoob.com/docker/docker-install-mysql.html
https://blog.csdn.net/westworld2017163com/article/details/83150628