環境
- Centos:7
- Docker: 17.05-ce
- Mysql: 5.7
1. Mysql外部數據和配置文件路徑
- msyql配置文件路徑:
/etc/mysql
- mysql數據卷路徑:
/var/lib/mysql
1.1. 拉取mysql:5.7鏡像
docker pull mysql:5.7
2. 創建mysql:5.7容器
宿主機mysql配置文件路徑:/root/docker/mysqletc/mysql
宿主機mysql數據卷路徑:/root/docker/mysqletc/data
注:路徑可以自己定義
2.1. 創建一個臨時的msyql:5.7容器,目的是cp 容器里mysql的配置文件
docker run -d -p 3306:3306 --name myMysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7
2.2. 復制容器中的mysql配置文件到宿主機指定目錄
從容器中將文件拷貝出來的命令:dokcer cp 容器名稱:容器目錄 需要拷貝的文件或目錄
docker cp myMysql:/etc/mysql /root/docker/mysqletc
2.3. 停止並刪除剛才創建的臨時容器
docker stop myMysql
dokcer rm myMysql
2.4. 創建並啟動mysql:5.7容器
docker run -d --name mysql5.7 -p 33306:3306 --restart always --privileged=true -v /root/docker/mysqletc/mysql:/etc/mysql -v /root/docker/mysqletc/data:/var/lib/mysql -e MYSQL_USER="summit" -e MYSQL_PASSWORD="summit" -e MYSQL_ROOT_PASSWORD="root" mysql:5.7
2.5. 大功告成,查看容器日志
docker logs -f mysql5.7
3. 涉及到的命令行參數
--restart always -> 開機啟動
--privileged=true -> 提升容器內權限
-v /root/docker/mysqletc/mysql:/etc/mysql -> 映射配置文件
-v /root/docker/mysqletc/data:/var/lib/mysql -> 映射數據目錄
-e MYSQL_USER="summit" -> 添加用戶summit
-e MYSQL_PASSWORD="summit" -> 設置summit用戶的密碼為summit
-e MYSQL_ROOT_PASSWORD="root" -> 設置root的密碼為root
參考鏈接:
https://www.cnblogs.com/0oliumino0/p/10538207.html