日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

目錄
  • Docker掛載mysql
    • 1.下載鏡像
    • 2.啟動mysql容器
    • 3.確定mysql配置文件路徑
    • 4.創建本地路徑并掛載Docker內數據
    • 5.重新啟動mysql容器
  • 初識Docker掛載mysql掛載備份
    • 掛載方式有具名掛載和匿名掛載
    • 拓展
  • 總結

    Docker掛載mysql

    我們在VMware上的Linux系統上安裝啟動mysql服務后,可以在本機Windows系統上通過Navicat遠程訪問,可以進行數據庫表的增刪改查,但是會存在一個問題

    此時如果通過docker關閉MySQL容器,就會導致數據丟失(可以理解為數據庫中的提交事務,未提交事務會導致數據沒保存成功 ),因此修改容器之后需要保存或者掛載mysql數據庫

    1.下載鏡像

    # 最新版本
    docker pull mysql
     
    # 如 5.7 版本 本文基于5.7版本
    docker pull mysql:5.7

    2.啟動mysql容器

    # 運行mysql命名容器名稱為mysql并且設置root賬號初始密碼為root
    docker run  -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD="root" -d mysql:5.7

    3.確定mysql配置文件路徑

    #進入docker容器,mysql為剛安裝的容器名稱
    docker exec -it mysql或者mysql容器ID /bin/bash
     
    # 查找Docker內,MySQL配置文件my.cnf的位置
    mysql --help | grep my.cnf
     
    # 會輸出數據文件的存放路徑 /var/lib/mysql/
    show variables like '%datadir%';

    Docker如何掛載mysql

    Docker如何掛載mysql

    4.創建本地路徑并掛載Docker內數據

    拷貝MySQL容器配置文件

    mkdir -p /usr/local/mysql/conf && mkdir -p /usr/local/mysql/data
     
    # 將容器的配置復制到服務器
    docker cp mysql:/etc/mysql/* /usr/local/mysql/conf/
    或
    docker cp mysql:/etc/mysql/. /usr/local/mysql/conf/
     
    # 修改字符集
    vim /usr/local/mysql/conf/my.cnf
    character-set-server=utf8

    如果遇到如下錯誤:

    /usr/bin/docker-current:Error response from daemon: error creating overlay mount to /var/lib/docker/overlay2/1b1d4a0234ee4caxxxxx/merged: invalid argument.
     
    See '/usr/bin/docker-current run –help'.

    這個是因為用的overlay2文件系統,而系統默認只能識別overlay文件系統,更新文件系統即可

    systemctl stop docker ? ? ?//停掉docker服務
    
    rm -rf /var/lib/docker ? ? ? ?//注意會清掉docker images的鏡像
    
    vim /etc/sysconfig/docker-storage ? ? ?
    
    //將文件里的overlay2改成overlay即可

    如:DOCKER_STORAGE_OPTIONS="–storage-driver overlay"

    vim /etc/sysconfig/docker ? ? ? ? //去掉option后面的--selinux-enabled

    然后啟動docker即可:systemctl start docker

    5.重新啟動mysql容器

    docker stop mysql
     
    docker rm mysql
     
    docker run --name mysql \
    -p 3306:3306 \
    -v /usr/local/mysql/conf/my.cnf:/etc/mysql/my.cnf \
    -v /usr/local/mysql/data:/var/lib/mysql \  
    -v /usr/local/mysql/log:/logs \
    -e MYSQL_ROOT_PASSWORD=admin123456 \
    --restart=always \
    -d mysql:5.7
     
    docker run --name mysql -p 3306:3306 -v /usr/local/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/log:/logs -e MYSQL_ROOT_PASSWORD=admin123456 --restart=always -d mysql

    映射MySQL數據文件后,刪除或者停止mysql容器后能保留數據庫文件,不至于導致數據庫丟失

    初識Docker掛載mysql掛載備份

    首先下載一個mysql:docker pull mysql

    運行mysql容器,需要做數據掛載(掛載就是將mysql中的文件,掛載到linux中,下次修改mysql配置文件,就不需要進入mysql,也可以備份mysql的數據):##安裝啟動mysql,需要配置密碼:

    docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=自己設置的密碼 --name mysql01 mysql
    
    • -d 后臺啟動
    • -p 端口映射,將3306映射到外部端口
    • -v 卷掛載,將mysql內部文件同步到linux的文件中,做到備份
    • -e 環境配置,這里配置的是mysql密碼
    • --name 容器名稱

    掛載方式有具名掛載和匿名掛載

    #查看所有volume(卷掛載)的情況 :docker volume ls

    #匿名掛載:-v 容器內路徑

    docker run -d -P --name mysql01 -v /etc/mysql mysql

    (-P 隨機映射端口)

    #具名掛載:

    docker run -d -P --name mysql02 -v juming-mysql:/etc/mysql mysql

    (具名掛載名稱:juming-mysql)

    #通過 -v 卷名:容器內路徑

    #查看一下這個卷:

    docker volume inspect juming-mysql

    Docker如何掛載mysql

    #所有的docker容器卷,在沒有指定目錄的情況下,都存儲在 /var/lib/docker/volumes/xxx/_data

    **如何確定是具名掛載還是匿名掛載,還是指定路徑掛載!**
    				
    	-v 容器內路徑		#匿名掛載
    	-v 卷名:容器內路徑		#具名掛載
    	-v /宿主機路徑:容器內路徑		#指定路徑掛載
    

    拓展

    #通過 -v 容器內路徑:ro	rw	改變讀寫權限
    ro	readonly	#只讀
    rw	readwrite	#可讀可寫
    
    #一旦設置了容器權限,容器對我們掛載出來的內容就有限定
    docker run -d -P --name mysql02 -v juming-mysql:/etc/mysql:ro mysql
    docker run -d -P --name mysql02 -v juming-mysql:/etc/mysql:rw mysql
    
    #ro,只要看到ro就說明這個路徑只能通過宿主機操作,容器內部是無法操作的!
    

    在測試的時候發現,如果一個文件名,如juming-mysql掛載過一次,刪除容器后,再使用這個名字時,會無法掛載上,原因是docker 里面的volumes緩存沒有清除:

    可以使用 docker –help 可以看到命令

    Docker如何掛載mysql

    再使用:docker system –help

    Docker如何掛載mysql

    這個就是docker清理volumes緩存的選項,輸入docker system prune 確定時輸入y,即可刪除 掛載緩存

    Docker如何掛載mysql

    總結

    以上為個人經驗,希望能給大家一個參考,也希望大家多多支持。

    分享到:
    標簽:Docker mysql_ 服務器
    用戶無頭像

    網友整理

    注冊時間:

    網站:5 個   小程序:0 個  文章:12 篇

    • 51998

      網站

    • 12

      小程序

    • 1030137

      文章

    • 747

      會員

    趕快注冊賬號,推廣您的網站吧!
    最新入駐小程序

    數獨大挑戰2018-06-03

    數獨一種數學游戲,玩家需要根據9

    答題星2018-06-03

    您可以通過答題星輕松地創建試卷

    全階人生考試2018-06-03

    各種考試題,題庫,初中,高中,大學四六

    運動步數有氧達人2018-06-03

    記錄運動步數,積累氧氣值。還可偷

    每日養生app2018-06-03

    每日養生,天天健康

    體育訓練成績評定2018-06-03

    通用課目體育訓練成績評定