1. 外部掛載路徑
在用戶目錄創建掛載目錄
mkdir mysql
進入掛載目錄
cd mysql
1.1 拉取mysql:5.7鏡像
docker pull mysql:5.7
2. 創建mysql:5.7容器
宿主機mysql配置文件路徑:$PWD/mysql
宿主機mysql數據卷路徑:$PWD/data
- 創建一個臨時的msyql:5.7容器,目的是cp 容器裏mysql的配置文件
docker run -d -p 3306:3306 --name myMysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7
- 複製容器中的mysql配置文件到宿主機指定目錄
從容器中將文件拷貝出來的命令:dokcer cp 容器名稱:容器目錄 需要拷貝的文件或目錄
docker cp myMysql:/etc/mysql $PWD/mysql
- 停止並刪除剛纔創建的臨時容器
docker stop myMysql
docker rm myMysql
- 進入mysql目錄修改配置
cd mysql
vim my.cnf
將配置修改爲這是我的配置,其他根據需求來改
[client]
port=3306
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character_set_server=utf8
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 配置大小寫不敏感
lower_case_table_names=1
# 配置最大sql語句最大長度
max_allowed_packet = 6M
- 創建並啓動mysql:5.7容器
docker run -d --name mysql -p 3306:3306 --restart always --privileged=true -v $PWD/mysql:/etc/mysql -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD="123456" mysql:5.7
- 大功告成,查看容器日誌
docker logs mysql
2.1 涉及到的命令行參數
--restart always -> 開機啓動
--privileged=true -> 提升容器內權限
-v $PWD/mysql:/etc/mysql -> 映射配置文件
-v $PWD/data:/var/lib/mysql -> 映射數據目錄
-e MYSQL_USER="summit" -> 添加用戶summit
-e MYSQL_PASSWORD="summit" -> 設置summit用戶的密碼爲summit
-e MYSQL_ROOT_PASSWORD="root" -> 設置root的密碼爲root