虛擬機部署centos系統部署docker和mysql的安裝過程

来源:https://www.cnblogs.com/Yao-happy/p/18083844
-Advertisement-
Play Games

作者本人使用的是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容器。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 放眼全球,數據作為一種新興生產要素,在全球經貿活動中扮演著至關重要的角色,驅動著數字經濟的蓬勃興起。據前瞻預測,至2025年,全球數據流動對整體經濟增長的貢獻預估將達到驚人的11萬億美元。 近幾年國家對數據要素關註度不斷上升。2023年12月31日,國家數據局等17部門聯合印發《“數據要素×”三年行 ...
  • varchar的最大值是多少?如果你去搜索過這個答案,我相信你或多或少都看到過65535這個答案。比如我們嘗試詢問一下當下最火的人工智慧,你可能會得到和我類似答案。 ...
  • 在用Apache SeaTunnel研發SM2加密組件過程中,發現社區關於本地調試SeaTunnel文章過於簡單,很多情況沒有說明,於是根據自己遇到問題總結這篇文檔。SeaTunnel本地調試官方文檔,希望對大家有所幫助! 使用的引擎為Flink(不需要下載,SeaTunnel中有載入依賴),輸入輸 ...
  • 前言 本文記錄 ES 的一些基本操作,就是對官方文檔的一些整理,按自己的習慣重新排版,湊合著看。官方的更詳細,建議看官方的。 下文以 books 為索引名舉例。 新增 添加單個文檔 (沒有索引會自動創建) POST books/_doc {"name": "Snow Crash", "author" ...
  • 前置概念 無併發的解決方案 一些小型項目,或極少有併發的項目,這些策略在無併發情況下,不會有什麼問題。 讀數據策略:有緩存則讀緩存,然後介面返回。沒有緩存,查詢出數據,載入緩存,然後介面返回。 寫數據策略:數據發生了變動,先刪除緩存,再更新數據,等下次讀取的時候載入緩存,或一步到位更新數據後直接更新 ...
  • mysql語句總結 創建 --create 創建 <create> create database 資料庫名 [charset=utf8]; create table 數據表名 ( (欄位 類型 約束[, 欄位 類型 約束]) | -- 級聯刪除/級聯更新 on delete/update casc ...
  • Redis語句總結 一、基本概念 Redis 全稱: Remote Dictionary Server(遠程字典伺服器)的縮寫,以字典結構存儲數據,並允許其他應用通過TCP協議讀寫字典中的內容。 使用C語言編寫,並以記憶體作為數據存儲介質,所以讀寫數據的效率極高 *redis的官方只提供了linux版 ...
  • 華為雲GeminiDB是一款相容Redis協議的彈性KV(Key-Value)資料庫,支持遠超記憶體的容量和極致的性能,可支撐用戶平滑遷移,在廣告、游戲、電商等行業有著廣泛的應用。 今年3月上線的新版本,GeminiDB已全面支持Redis 6.2,用戶可在華為雲GeminiDB產品官網購買使用。新版 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 在我們開發過程中基本上不可或缺的用到一些敏感機密數據,比如SQL伺服器的連接串或者是OAuth2的Secret等,這些敏感數據在代碼中是不太安全的,我們不應該在源代碼中存儲密碼和其他的敏感數據,一種推薦的方式是通過Asp.Net Core的機密管理器。 機密管理器 在 ASP.NET Core ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 順序棧的介面程式 目錄順序棧的介面程式頭文件創建順序棧入棧出棧利用棧將10進位轉16進位數驗證 頭文件 #include <stdio.h> #include <stdbool.h> #include <stdlib.h> 創建順序棧 // 指的是順序棧中的元素的數據類型,用戶可以根據需要進行修改 ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • C總結與剖析:關鍵字篇 -- <<C語言深度解剖>> 目錄C總結與剖析:關鍵字篇 -- <<C語言深度解剖>>程式的本質:二進位文件變數1.變數:記憶體上的某個位置開闢的空間2.變數的初始化3.為什麼要有變數4.局部變數與全局變數5.變數的大小由類型決定6.任何一個變數,記憶體賦值都是從低地址開始往高地 ...
  • 如果讓你來做一個有狀態流式應用的故障恢復,你會如何來做呢? 單機和多機會遇到什麼不同的問題? Flink Checkpoint 是做什麼用的?原理是什麼? ...
  • C++ 多級繼承 多級繼承是一種面向對象編程(OOP)特性,允許一個類從多個基類繼承屬性和方法。它使代碼更易於組織和維護,並促進代碼重用。 多級繼承的語法 在 C++ 中,使用 : 符號來指定繼承關係。多級繼承的語法如下: class DerivedClass : public BaseClass1 ...
  • 前言 什麼是SpringCloud? Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的開發便利性簡化了分散式系統的開發,比如服務註冊、服務發現、網關、路由、鏈路追蹤等。Spring Cloud 並不是重覆造輪子,而是將市面上開發得比較好的模塊集成進去,進行封裝,從 ...
  • class_template 類模板和函數模板的定義和使用類似,我們已經進行了介紹。有時,有兩個或多個類,其功能是相同的,僅僅是數據類型不同。類模板用於實現類所需數據的類型參數化 template<class NameType, class AgeType> class Person { publi ...
  • 目錄system v IPC簡介共用記憶體需要用到的函數介面shmget函數--獲取對象IDshmat函數--獲得映射空間shmctl函數--釋放資源共用記憶體實現思路註意 system v IPC簡介 消息隊列、共用記憶體和信號量統稱為system v IPC(進程間通信機制),V是羅馬數字5,是UNI ...