k8s系列~docker mysql


docker封裝mysql的一些心得
 簡介:今天咱們來聊聊容器化mysql的一些心得
 版本:Docker version 18.03 mysql 5.7.21
考慮條件:
  1 選好合適的docker鏡像
  2  容器安裝的內容
  3 分離設置的方式
我的思路
   1 關於mysql 安裝設計
       1 盡量只安裝基礎軟件包+mysql服務在容器內,像percona等第三方軟件不要安裝在容器內,因為軟件包本身會依賴很多軟件,要保持容器的干凈整潔
       2 上述第三方軟件可以選擇安裝在宿主內,在宿主內通過映射端口進行操作
  2 關於mysql 服務設計
       1 mysql 數據目錄和配置文件采用外掛方式,最后保存在本地磁盤,不要通過NFS等其他掛載方式,減少網絡開銷,配置文件也便於修改
       2 mysql 的err和pid的命名方式采用固定命名,因為容器每次重啟的hostname都要改變
       3 mysql配置文件最好開啟雙寫+雙1模式,增強數據有效性,如果容器損壞造成頁損壞導致數據不可用就很糟糕了
       4 mysql開機啟動采用mysqld_safe形式,這樣能使容器不退出
       5 對於mysql的初始化操作我的意見是初始化一次作為標准就足夠了,然后將這部操作摘除dockerfile,將標准化的數據文件作為下一個容器的啟動根據(記得刪除auto.cnf)
  3 關於dockerfile編寫
      1 盡量安裝精簡的軟件,越少越好,最好只安裝服務本身所 必須的軟件.你要明白,docker本身只是做服務的容器
      2 大量的RUN命令能合並的都合並,這樣能減少docker容器生成的嵌套層,這對於鏡像本身是非常重要的
      3 開機啟動腳本調用cmd命令
      4 對於dockerfile的編譯,盡量將基礎環境安裝和不太變動的操作寫在前面,這樣在調試的時候會減少編譯時間
      5 docker容器內不支持rc.local的開機啟動
 4 docker運行的注意事項
     1 -e 選項可以賦予容器內變量,這樣可以有效進行定制化啟動,比如定制化buffer_pool,然后可以在my.cnf進行定制化后啟動服務
     2 關於IP地址的固定我們也在探索

  5 docker常用命令

    1 docker build -t mysql:v1 . 編譯dockerfile

    2 docker ps 查看正在運行的容器

    3 docker ps -a 查看歷史運行的容器

    4 docker image 查看鏡像 

    5  docker rm $(docker ps -a -q) 刪除所有容器

    6 docker run -itd  mysql:v1  -e 'vale' -v 'directory' --name 'name' 啟動

    7 docker exec -it name /bin/bash 運行

    8  docker tag 打標簽 然后push  到私有倉庫

 
        

      
總結:這只是一個單純的docker定制,我們的目標是在k8s中進行容器化的管理,敬請期待下一篇,有錯誤和建議敬請留言指出


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM