作者本人使用的是vmware17Pro虛擬機,大家可以去網上找相關教程下載安裝,此總結後邊有多次安裝遇到的bug,要是有地方不妥,歡迎相互交流 在剛開始時,我們先部署的是Linux虛擬機,在設置Linux系統基礎環境時,系統就基本具有一些網路服務功能,差不多類似於現實中大型的伺服器,還有設置網路這一 ...
作者本人使用的是vmware17Pro虛擬機,大家可以去網上找相關教程下載安裝,此總結後邊有多次安裝遇到的bug,要是有地方不妥,歡迎相互交流
在剛開始時,我們先部署的是Linux虛擬機,在設置Linux系統基礎環境時,系統就基本具有一些網路服務功能,差不多類似於現實中大型的伺服器,還有設置網路這一塊,把ip設成了靜態的,這樣我們在訪問該虛擬機不用每次看它自動分配的地址了,還有就是DNS伺服器,這裡是用到了公共的DNS伺服器。下邊先解釋下DNS。
DNS,全稱為Domain Name System(功能變數名稱系統),是互聯網的一項核心服務,它作為分散式資料庫存儲和管理了全球網路資源的功能變數名稱與IP地址之間的對應關係。在互聯網中,每個設備都有一個唯一的IP地址用於標識和定位,但這些數字形式的地址難以記憶,因此引入了功能變數名稱系統來提供一種更為人性化、易於理解的層次結構名稱空間。
當用戶輸入網址(如www.example.com)訪問網站時,電腦實際上需要的是該網站伺服器對應的IP地址。DNS伺服器在此過程中扮演著中介的角色,負責將用戶提供的功能變數名稱轉換為相應的IP地址。這個過程被稱為“DNS解析”。先就這樣大概瞭解吧。
這樣做是外部通過訪問你設置好的IP地址,直接訪問你Linux系統獲取資源等等,而DNS會解析這個IP地址,幫你正確找到該Linux系統,然後這樣就可以訪問了,就是一個中介。
部署好Linux系統,我們通過xshell連接Linux系統,這直接訪問它的IP地址就可以了,之後就可以操控Linux系統了,併在其上部署了docker容器,併在docker容器中下載好MySQL,通過設置Linux系統埠訪問其上的MySQL埠,可以實現物理機中MySQL客戶端通過訪問Linux系統的埠,直接訪問其上MySQL的埠。
還有一點要註意的就是那個在安裝系統時的設置
首先設置系統軟體環境配置,選擇那個基本的網路伺服器模式,因為我們要運行mysql,需要有伺服器來運行它,然後就是設置網路那個,把那個ipv4進行配置,不過感覺ipv6也可以,對於我們練習沒必要用那個地址分配,ipv4就夠了,進入到網路配置時,先把那個乙太網開關打開,會看到顯示它的ip地址,但這是自動分配,現在我們聯繫不要緊,但是以後練習多了會這個ip本來會自動分配(系統預設),你要使用這個伺服器,每次還得先找他的IP地址,比較麻煩,所以我們在其配置中設置ipv4那個設置,把地址分配改為手動,添加一個地址,這個的從虛擬機的設置網路編輯器中找到我們的對應虛擬機的網路設置,前邊兩項對應的是子網ip和網關,都可以看到,在右下角,然後網關ip在編輯器中對應系統服務的nat設置,這樣我們可以看到了,還有就是子網ip要把最後一個點的後面自己設置一個數字,範圍0-255,不過我們儘量設置大於1的小於255的,0和1已經被占用,其他沒啥,保存就OK了,還有一個硬碟設置,進去點一下然後完成即可,之後就可以開始安裝了
然後我們去阿裡雲伺服器官網,找到產品中的容器鏡像服務,然後管理控制台,進去以後有一個鏡像工具,我們是在centos上部署容器,選擇centos,然後就是有一個參考文檔連接,點進去進行手動安裝,根據centos的安裝步驟,一步一步在xshell中進行命令部署安裝,對了我們得先下載好xshell這個軟體,然後就是建立於虛擬機的連接,ip地址與上方是一樣的,用戶名密碼都通過第一次保存來以後直接連接使用,之後我們可以就進行安裝部署docker容器,這裡有個趣事就是我設置系統網路DNS伺服器為華為的,但是在以上進行部署docker會出現失敗,但是換成阿裡的DNS伺服器就可以了,說明產品要對應呀。
這裡來講一下這個docker容器,我簡單理解就是這個又相當於一個虛擬機,然後在其上運行各種各樣的應用服務,是因為這個容器將這些服務會隔離開互不影響,相當於每一個應用服務又是一個虛擬機。
docker安裝好後,我們要安裝鏡像加速器,因為這個docker伺服器在境外,所以連接專門的節點來完成我們所需要的下載,這個在阿裡雲伺服器容器鏡像那裡有,複製粘貼運行即可,對了,這裡有幾個啟動關閉等設置docker服務
systemctl start docker//啟動docker服務
systemctl stop docker//停止docker服務
systemctl restart docker//重新啟動docker服務
systemctl enable docker//打開系統一運行(開機)docker就運行
systemctl disable docker//關閉系統一運行(開機)docker就運行
然後我們使用docker pull mysql:版本號這一命令行,來完成MySQL資料庫的下載
下載好後,我們要運行並設置mysql資料庫
docker images//這個是查看docker容器中的鏡像,確保mysql是否下載好
docker run -p 3306:3306 --name mysql --restart=always --privileged=true \
-v /usr/local/mysql/log:/var/log/mysql \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf:/etc/mysql \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
//以下是docker命令的對應解釋,使用時按需來輸入
-p 3306:3306:指定宿主機埠與容器(MySQL)埠映射關係,也就是要是外部想要訪問該資料庫,需要我們把資料庫的埠映射到宿主機的埠,也就是虛擬機的埠,外部訪問虛擬機指定埠即可訪問到資料庫的埠
--name mysql:創建的容器名稱
--restart=always:總是跟隨docker啟動
--privileged=true:獲取宿主機root許可權
-v /usr/local/mysql/log:/var/log/mysql:映射日誌目錄,宿主機:容器
-v /usr/local/mysql/data:/var/lib/mysql:映射數據目錄,宿主機:容器
-v /usr/local/mysql/conf:/etc/mysql:映射配置目錄,宿主機:容器
-v /etc/localtime:/etc/localtime:ro:讓容器的時鐘與宿主機時鐘同步,避免時區的問題,ro是read only的意思,就是只讀。
-e MYSQL_ROOT_PASSWORD=123456:指定mysql環境變數,root用戶的密碼為123456
-d mysql:latest:後臺運行mysql容器,版本是latest。
好了,以上就是虛擬機中部署docker容器以及MySQL鏡像,外部訪問資料庫的一些連接細節,這個使用於centos系統僅能使用命令行,對於ubuntu系統這個目前是桌面端,進桌面端設置網路動態變靜態,ip分配,DNS伺服器等,終端部署docker容器,以及ssh遠程訪問許可權,外部才可訪問docker容器。