ubuntu docker運行mysql並且掛載數據捲到宿主機

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

  1. 創建一個臨時的msyql:5.7容器,目的是cp 容器裏mysql的配置文件
docker run -d -p 3306:3306 --name myMysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7
  1. 複製容器中的mysql配置文件到宿主機指定目錄
    從容器中將文件拷貝出來的命令:dokcer cp 容器名稱:容器目錄 需要拷貝的文件或目錄
docker cp myMysql:/etc/mysql $PWD/mysql
  1. 停止並刪除剛纔創建的臨時容器
docker stop myMysql
docker rm myMysql
  1. 進入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
  1. 創建並啓動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
  1. 大功告成,查看容器日誌
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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章