1、拉取MySQL鏡像
docker pull mysql:5.7
2、運行容器
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=12345678 -d mysql:5.7 # -e後面是設置MySQL密碼
3、創建目錄保存Mysql 的數據、配置、日誌,這樣刪除容器時,數據也不會丟失
mkdir -p /docker/mysql && cd /docker/mysql
mkdir data log conf
4、在 conf 目錄中新建 my.cnf 文件,作爲 Mysql 的配置文件
[mysqld]
datadir=/var/lib/mysql
#(默認不是中國時區,使用的時候被坑過)
default-time_zone = '+8:00'
log-error=/var/log/mysql/error.log
5、重建容器
1、docker stop mysql && docker rm mysql
2、docker run --name mysql \
--restart=always \( Docker 重啓時容器也跟隨啓動)
--privileged=true \(Docker 爲容器內的 root 用戶賦予真正的 root 權限,不然會提示 log 目錄權限不足)
-p 3306:3306 \
-v /docker/mysql/conf:/etc/mysql/conf.d \(將配置目錄掛載到容器內的配置目錄)
-v /docker/mysql/data:/var/lib/mysql \(將數據存儲目錄掛載到容器內的出局存儲目錄)
-v /docker/mysql/log:/var/log/mysql \(將日誌目錄掛載到容器內的日誌目錄)
-e MYSQL_ROOT_PASSWORD=12345678 \
-d mysql
6、設置允許遠程訪問
1、docker exec -it mysql bash
2、mysql -u root -p
3、ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '12345678';
4、FLUSH PRIVILEGES;