虛擬機部署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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...