国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 課堂 > 基礎知識 > 正文

經過Docker技術在macOS上布局3實例MGR環境

2024-09-12 20:30:06
字體:
來源:轉載
供稿:網友
   通過Docker技術在macOS上部署3實例MGR環境
 
  自從有了Docker,各種環境部署都簡單從容起來,其實MySQL的環境部署起來同樣得心應手。
 
  前提條件,已經在自己的macOS操作系統中設置成功了運行在本地的3節點MySQL Group Replication集群,如何設置,可以參考官方文檔。
 
  假設在我們的macOS上已經實現了如下架構的3節點MGR集群,我們的目標是將這三個數據庫全部挪到docker容器中去運行,并且可以互相通信,仍然是MGR集群。
  
  Docker on MacOS
 
  接下來我們把MySQL放在一邊,先介紹一下在macOS中的docker架構,在macOS中,docker的實現跟在其它Linux系統中略有不同,在其它Linux系統中,操作系統本身就是docker容器的宿主機,docker鏡像都是直接存儲在宿主機本身的文件系統中,比如我們通過docker info命令可以看到docker的根目錄是:
 
  $ docker info|grep "Docker RootDir"
 
  Docker Root Dir: /var/lib/docker
 
  但是在macOS下,我們直接查看這個目錄,其實是根本不存在的。
 
  $ ls /var/lib/docker
 
  ls: /var/lib/docker: No such file or directory
 
  Docker宿主機是誰
 
  那么這個目錄到底在哪里?實際上是在一個QEMU虛擬機中,當我們在macOS中安裝完docker并啟動,就是啟動了一個虛擬機,這個虛擬機的整個內容全部都在一個文件里,可以在docker程序屬性界面中看到這個文件的路徑,比如在我的機器上,路徑就是/Users/Kamus/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2,該文件通常比較大,特別是安裝了多個docker鏡像之后,會輕易占用到數十GB的空間。
 
   這個虛擬機被限制只能使用2顆CPU和2GB內存。
 
  那么,我們是否可以登錄這個虛擬機來確認這點呢?使用macOS自帶的screen命令可以登錄該臺虛擬機。如下,可以看到這是一個擁有非常新的Linux 4.9.38版本內核的虛擬機,在這個虛擬機中才有/var/lib/docker目錄,只有2顆CPU,總共有2GB內存。
  
  在screen的窗口按組合鍵control+a d(先按control+a,再按d)可以暫時dettach出這個screen,screen -r可以重新打開窗口。更多的screen命令,可以自行man screen來查看。
 
  所以現在我們可以明確一個概念,macOS本身并不是以后將運行的docker容器的宿主機,而這個Linux虛擬機才是真正的宿主機。這臺機器的主機名是moby,這正是docker項目社區版的名稱。
 
  Docker宿主機與macOS操作系統的目錄共享
 
  由于如下共享文件夾功能的存在,在這個虛擬機中可以訪問并更新macOS操作系統本地的目錄,這在后面我們將運行在本地的MySQL數據庫搬遷到docker容器中起了重要的作用。
  
  我們還是在screen中看一下這些共享目錄的情況。
 
  可以看到,確實macOS操作系統中的目錄在虛擬機中是可以直接訪問的,而且更方便的地方是,在虛擬機中自動掛載的目錄路徑跟macOS中的路徑是完全相同的,比如我的個人主目錄無論是在macOS中還是在這個虛擬機中,都是/Users/Kamus。
 
  那現在我們的思路基本上有了,就是要將原本運行在macOS操作系統中的MySQL數據庫的數據文件和配置文件挪到Docker宿主機可以訪問的目錄下,然后在docker容器中啟動MySQL實例。
 
  安裝MySQL docker鏡像
 
  先要將MySQL docker鏡像安裝上,這是運行MySQL docker容器的基礎。安裝鏡像極其簡單,只需要一步就可以,以下命令在macOS操作系統中執行。
 
  標準步驟是:
 
  $ docker pull mysql
 
  但是由于這樣會安裝latest版本,而我原先在macOS中的MySQL數據庫是5.7.17版本,為了避免可能產生的版本升級問題,我做了指定版本的鏡像拉取。
 
  $ docker pull mysql:5.7.17
 
  從官方的docker store中拉取MySQL鏡像,大約只需要幾分鐘時間,完畢以后,可以通過docker images命令來查看。
  
  第一行就是最新拉取的MySQL鏡像,這是創建者在4個月前創建的。
 
  運行MySQL docker容器前的準備
 
  設計docker宿主機目錄結構
 
  現在我們已經有了docker鏡像,也有了在macOS操作系統中運行良好的MySQL MGR集群,開始遷移。首先當然是干凈地關閉在macOS操作系統中的三臺MySQL數據庫,然后我們設計如下的目錄結構,將三個數據庫的數據文件全部分別挪進去。
 
  根據之前闡述的共享文件夾功能,可以知道在docker宿主機中是可以通過完全相同的路徑訪問到這幾個目錄的,我們將原本在macOS操作系統中的三個數據庫的數據文件分別移動到s1-docker,s2-docker,s3-docker目錄中,至于哪些文件需要移動,這是MySQL DBA的基本知識,不在這里贅述。
 
  由于目標是能運行MGR集群,那么是有一部分數據庫初始化參數要額外設置的,而docker容器中的my.cnf內容無法改動,所以我們再設計一個專門的目錄用來存儲所有數據庫的my.cnf文件。
  
  然后將原本各個數據庫的my.cnf文件分別拷貝到conf.d/s1-docker等三個目錄下,最后形成了如下的目錄結構。
 
  設計這些目錄結構的目的是在運行docker容器的時候通過volume選項將數據文件目錄掛載成容器內部的/var/lib/mysql目錄,將my.cnf參數文件所在目錄掛載成容器內部的/etc/mysql/conf.d目錄,從而實現MySQL數據庫實例啟動所需要的所有關鍵文件都存儲在宿主機中,而docker容器本身只提供MySQL軟件鏡像。這比將所有文件都存儲在docker鏡像內部更靈活。
 
  設計docker容器主機名和IP地址
 
  在macOS本機運行的MySQL實例中為MGR配置的各種參數中使用到的主機名往往是localhost,IP地址則是127.0.0.1,MGR集群的節點間通信端口也往往是指定了本機IP上的不同端口,如果我們參照了官方文檔中的搭建指南,使用的就是24901,24902,24903三個端口。
 
  group_replication_group_seeds="127.0.0.1:24901,127.0.0.1:24902,127.0.0.1:24903"
 
  現在我們既然將數據庫搬到了容器中,那么就完全可以重新設計更有意義的主機名和分別的IP地址。
 
  在啟動Docker容器的時候,可以通過hostname和ip選項指定主機名和靜態IP。可以參照最后運行Docker容器的完整命令。
 
  如果要為Docker容器指定靜態IP,則必須要使用手動創建的network,通過以下命令可以創建,比如此處我們創建了名稱為mynet的網絡。
 
  $ docker network create--subnet=192.168.100.0/24 mynet
 
  創建完畢以后,通過network ls命令可以查看新創建的網絡。可以看到默認是橋接方式。
  
  設計docker容器資源占用限制
 
  對于在同一宿主機上運行多個docker容器,進行資源限制是必不可少的需求,雖然在此文中我們只是進行將MySQL實例搬遷到docker容器中的測試,但是也仍然規劃了容器資源限制,由于宿主機本身只有2顆CPU和2GB內存,因此做如下規劃。
 
  在啟動Docker容器的時候,可以通過cpus和memory以及memory-swap選項指定CPU和內存的資源限制。可以參照最后運行Docker容器的完整命令。
 
  根據以上設置修改各數據庫的my.cnf配置
 
  因為我們設計了容器啟動時候會擁有不同的IP地址,因此在容器中運行的MySQL實例的初始化參數中關于MGR的部分也需要指定這些IP地址。以下是my.cnf文件的設置內容。
 
  三個節點的my.cnf文件內容除了loose-group_replication_local_address參數之外,其它內容都是完全相同的。
 
  運行MySQL docker容器
 
  由于MGR集群要求每個數據庫在主機層是可以直接訪問到其它節點的主機名的,如果在普通的主機上,只需要修改/etc/hosts文件增加其它節點的主機名和IP地址對應條目即可,但是容器內的/etc/hosts卻是無法手動修改的,即使手動增加了條目,只要重新啟動容器,該條目就會丟失。
 
  要應對該問題,可以在運行容器時使用add_host選項。在真實的生產環境中,我們可以選擇配置專門的DNS服務器來做IP和主機名對應(DNS服務器同樣可以是Docker容器,我們后續的測試將增加此部分內容,本文先暫時通過add_host的方式來解決)。
 
  全部容器都啟動完畢以后,可以通過docker ps命令查看容器的運行狀態,或者通過docker logs命令查看MySQL數據庫日志的輸出。非常方便。
  
  啟動MGR
 
  通過如下命令登錄到Docker容器的操作系統中,再進入MySQL實例,啟動MGR。我們目前設置的是Single Primary模式的MGR,先啟動第一個Primary實例。
 
  再依次啟動第二個只讀實例。
 
  啟動第三個只讀實例。
 
  到此為止,我們將原先運行在macOS中的一整套MGR集群全部搬遷到docker容器中。最終實現了如下的系統架構。
 
  恩墨學院隸屬于云和恩墨(北京)信息技術有限公司,致力于提供專業高水準的oracle數據庫與大數據培訓服務,挖掘培養大數據與數據庫人才。恩墨學院提供包括個人實戰技能培訓、個人認證培訓、企業內訓在內的全方位大數據和數據庫技術培訓。ACE級別超強師資,配備專業實驗室,沉浸式學習與訓練,專業實驗室、配備專業助教指導訓練。能迅速融入專家圈子,業內資源豐富,迅速積累職場人脈。oracle數據庫課程包括:Oracle DBA實戰班、Oracle OCM考試、Oracle OCP考試等。

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产精品国产国产aⅴ| 国产寡妇树林野战在线播放| 国产网站麻豆精品视频| 国产精选一区二区三区不卡催乳| 超碰在线97国产| 国产毛片在线| 国产国产国产国产国产国产| 国产私拍精品| 97在线超碰| 久精品在线观看| 国产精品剧情一区二区三区| 精品偷拍激情视频在线观看 | 日本欧洲一区| 天堂在线免费av| 国产对白在线| 国产中文字幕在线播放| av福利在线观看| 黄色三级视频在线观看| 国产porny蝌蚪视频| 精品麻豆视频| 在线视频婷婷| 日韩中文字幕久久久经典网| 麻豆视频在线观看免费网站| 国产日产一区二区三区| 久久精品蜜桃| 永久av在线| 国产网站av| 免费特级黄毛片| 依依成人在线| 国产98在线| 最新天堂资源在线资源| 四虎国产精品永久在线| 国产一级免费看| 国产在线黄色片| 日本成人网址| www狠狠操| 在线一区观看| 国产xxx在线| 国产xxxxx| 国产成人综合美国十次| 国产精品人人爱一区二区白浆| 久草网在线视频| 九九热视频在线观看| www在线免费观看视频| 99热在线观看免费| 日本在线视频www鲁啊鲁| 国产95在线|亚洲| 国产高清在线| 777电影在线观看| 精品无人乱码| 四虎成人精品在永久在线观看| 91亚洲欧美| 91资源在线观看| 在线免费日韩| 亚洲视频手机在线观看| www.av在线视频| 九九热在线视频| 99热在线免费播放| 国产夫妻视频| 亚洲综合色视频在线观看 | 中文字幕一区二区三区免费视频| 黄色av网站在线免费观看| 日本一卡二卡四卡精品| 免费在线观看a| 国产美女视频一区二区三区| 中文字幕视频免费在线观看| 国产精品久久久高清免费| 在线看黄色av| √天堂资源地址在线官网| 2019中文字幕在线电影免费| sese一区| 国产成a人亚洲精v品| 麻豆精品不卡国产免费看| 国产区在线看| 牛牛精品视频在线| 国产成人va亚洲电影| 福利资源在线久| 99久久精品免费观看国产| 超碰97国产精品人人cao| 国产高清视频在线观看| 欧美日韩在线精品成人综合网| 最近中文字幕av免费高清 | 国产福利三区| 国内a∨免费播放| 中文在线视频观看| 国产三级视频在线| 国产永久免费高清在线观看| av在线免费观看网| 91视频久色| 国产一级在线观看www色| wwwww在线观看免费视频| 国产黄色免费看| 国产偷窥洗澡视频| 国产剧情av在线| 久蕉依人在线视频| 欧美日韩久久中文字幕| eeuss影院www在线播放| av网址在线播放| 亚洲欧美精品日韩欧美| 在线天堂中文www视软件| 国产精品视频一区麻豆| 国产毛片在线看| 中文字幕有码在线视频| 国产网红女主播精品视频| 国产丝袜护土调教在线视频| 国产麻豆精品高清在线播放| 男人天堂亚洲| 国产精品一区二区婷婷| 国产一区精品| 国产福利免费在线观看| 精精国产xxxx视频在线| 亚洲久草视频| 国自产拍在线网站网址视频| 1区2区3区在线| 国产精品久久精品牛牛影视| 在线免费观看黄色片| av中文在线| 国产精品天堂| 国产精品扒开做爽爽爽的视频| 91精品专区| www.亚洲视频| 国产尤物视频| 国产不卡视频| 九九免费视频| 国产传媒在线播放| 亚洲大香人伊一本线| 中文字幕在线永久在线视频| 中文av字幕| 国产精品一区二区资源| 2021天堂中文幕一二区在线观| 一本久久精品| 最近免费中文字幕在线第一页| 91嫩草在线播放| 国产中文字幕在线| 伊人网在线视频| 国产永久在线观看| 中文岛国精品亚洲一区| 高清欧美精品xxxxx在线看| 91精品国产高久久久久久五月天| 日本aⅴ写真网站免费| 国产三级av在线| 国产免费一级片| 午夜羞羞小视频在线观看| 国产网红在线| 丁香婷婷在线| 免费精品国产自产拍观看| 99热播在线观看| 国产精品久久人| 午夜视频免费在线观看| 麻豆精品不卡国产免费看| 91午夜视频| 国产精品视频一区二区三区麻豆 | 日本免费一二区| 在线视频福利| 69国产精品| 国产精品人人| 中文字幕在线免费观看| 精品中文字幕不卡在线视频| a视频在线观看免费| 午夜影院在线| 亚洲日本一区二区三区在线观看 | 国产三级视频在线看| 福利资源在线久| 国产在线视精品麻豆| 男人天堂v视频| 青青草中文字幕| 久久久久久77777| 成年人在线观看| 国产鲁鲁视频在线观看免费| 黄网址在线播放免费| 欧美日韩亚洲国内综合网| 久久91精品视频| 国产精选在线观看| 国产经典自拍视频在线观看 | 国产视频1区| 国产精品入口麻豆电影| 国产人成在线视频| 永久免费网站在线| 男人操女人免费网站| 中文字幕中文字幕在线中高清免费版| 中文字幕在线影视资源| av免费在线免费| 成年网在线观看免费观看网址| 国产视频中文字幕在线观看| 国产youjizz在线| av在线播放网| 五月婷婷视频在线观看| 精品卡一卡卡2卡3网站| 在线一区观看| 国产男女猛烈无遮挡免费视频| 国产福利在线免费观看| 免费精品国产自产拍观看| 国产深夜福利| 轻轻色免费在线视频| 国产激情在线视频| 免费三级毛片| 在线观看av的网站| 国产精品免费91| 黄网址在线播放免费| 永久av在线|