最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker實戰(zhàn)指南之MySQL、Redis與C++環(huán)境的深度容器化部署

 更新時間:2025年12月12日 10:57:31   作者:Undoom  
項目開發(fā)中最常用的就是MySQL和Redis了,咱們的實戰(zhàn)項目的需求開發(fā)過程中也依賴這兩個基礎環(huán)境,這篇文章主要介紹了Docker實戰(zhàn)指南之MySQL、Redis與C++環(huán)境的深度容器化部署,需要的朋友可以參考下

前言

在現(xiàn)代軟件工程體系中,Docker作為一種輕量級的虛擬化技術,已經(jīng)成為快速構建、交付和運行應用程序的標準工具。通過容器化技術,開發(fā)人員能夠將應用及其依賴環(huán)境打包成一個獨立的單元,從而實現(xiàn)“一次構建,到處運行”的目標。本文將深入解析MySQL 5.7數(shù)據(jù)庫、Redis 7.0緩存中間件以及基于CentOS 7的C++編譯環(huán)境的容器化部署全流程。文中將涵蓋鏡像獲取、容器實例化、網(wǎng)絡端口映射、數(shù)據(jù)持久化操作、系統(tǒng)源配置以及編譯工具鏈構建等核心知識點。

第一部分:MySQL 5.7 關系型數(shù)據(jù)庫的容器化部署

MySQL作為應用最廣泛的開源關系型數(shù)據(jù)庫管理系統(tǒng),其穩(wěn)定性和成熟的生態(tài)使其成為眾多項目的首選。Docker Hub提供了官方維護的MySQL鏡像,極大地簡化了安裝配置流程。

1.1 鏡像獲取與版本選擇

首先,需要從遠程倉庫拉取MySQL 5.7版本的鏡像。選擇5.7版本而非最新的8.0版本,通常是因為舊有系統(tǒng)的兼容性需求或對特定版本穩(wěn)定性的考量。

執(zhí)行拉取命令:

docker pull mysql:5.7

Docker不僅會下載鏡像的元數(shù)據(jù),還會分層下載文件系統(tǒng)。

在下載過程中,可以看到每一層(Layer)的下載狀態(tài)。這種分層存儲機制是Docker文件系統(tǒng)的核心優(yōu)勢,它允許不同鏡像共享相同的基礎層,從而節(jié)省存儲空間并加快下載速度。待所有層級下載完畢并校驗通過后,終端將顯示下載完成的信息。

為了確認鏡像已成功存儲在本地宿主機中,可以使用鏡像列表查詢命令。該命令將列出本地所有的鏡像倉庫名稱、標簽、鏡像ID、創(chuàng)建時間及大小。

1.2 容器實例的創(chuàng)建與網(wǎng)絡映射

鏡像準備就緒后,下一步是根據(jù)該鏡像啟動一個容器實例。在啟動過程中,需要配置幾個關鍵參數(shù):

  • --name: 指定容器的名稱,便于后續(xù)管理。
  • -e: 設置環(huán)境變量。對于MySQL而言,MYSQL_ROOT_PASSWORD是必須設置的變量,用于初始化root用戶的密碼。
  • -p: 配置端口映射。格式為宿主機端口:容器端口。此處將宿主機的8201端口映射到容器內(nèi)部的3306標準端口,這意味著外部訪問應連接8201端口。
  • -d: 指定容器在后臺(Detached mode)運行。

執(zhí)行如下命令:

docker run --name mysql -e MYSQL_ROOT_PASSWORD=qwe123 -p 8201:3306 -d mysql:5.7

命令執(zhí)行成功后,Docker守護進程會返回一個長字符串,即該容器的唯一ID,這標志著容器已成功啟動并在后臺運行。

1.3 容器內(nèi)部交互與數(shù)據(jù)庫初始化

容器運行后,是一個獨立的Linux環(huán)境。為了進行數(shù)據(jù)庫操作,需要通過docker exec命令進入容器內(nèi)部的交互式終端。

docker exec -it mysql bash

進入容器后,使用標準MySQL客戶端命令登錄數(shù)據(jù)庫系統(tǒng)。

mysql -u root -p

此時系統(tǒng)會提示輸入密碼,需輸入在啟動容器時通過環(huán)境變量設置的qwe123。

成功登錄MySQL控制臺后,可以執(zhí)行SQL語句來管理數(shù)據(jù)庫。首先,查看當前系統(tǒng)默認存在的數(shù)據(jù)庫列表,以驗證系統(tǒng)初始化的完整性。

show databases;

為了再次確認當前運行的數(shù)據(jù)庫版本,執(zhí)行版本查詢語句。

select version();

返回結果明確顯示版本為5.7.44,符合預期。

1.4 數(shù)據(jù)定義與操作實戰(zhàn)

接下來進行實際的業(yè)務模擬操作。首先創(chuàng)建一個名為test_db的測試數(shù)據(jù)庫。

create database test_db;

執(zhí)行成功后,Query OK提示表明數(shù)據(jù)庫文件已在容器內(nèi)部的文件系統(tǒng)中建立。

使用use命令切換上下文至新建的數(shù)據(jù)庫。

use test_db;

系統(tǒng)提示Database changed,表示后續(xù)操作均將在該數(shù)據(jù)庫作用域內(nèi)執(zhí)行。

在當前數(shù)據(jù)庫中創(chuàng)建一個用戶表test_user,包含姓名(varchar類型)和年齡(int類型)兩個字段。

create table test_user(name varchar(50),age int);
show tables;

表創(chuàng)建成功后,show tables命令可以查看到該表的存在。

向表中插入一條測試數(shù)據(jù),并隨即進行全表查詢以驗證數(shù)據(jù)寫入的準確性。

insert into test_user values('kaizi','99');
select * from test_user;

查詢結果清晰展示了剛才插入的記錄,證明數(shù)據(jù)庫的讀寫功能完全正常。

1.5 外部客戶端連接驗證

容器化的核心價值之一在于對外提供服務。此時,使用宿主機上的圖形化數(shù)據(jù)庫管理工具(如Navicat、DBeaver等)嘗試連接該MySQL容器。連接配置中,主機地址應填寫宿主機IP(或localhost),端口則填寫映射的8201端口,而非容器內(nèi)部的3306端口。

連接成功建立后,展開數(shù)據(jù)庫列表,可以立刻看到剛才在容器命令行中創(chuàng)建的test_db數(shù)據(jù)庫。

在圖形化工具中打開test_user表,可以看到之前插入的kaizi, 99這條數(shù)據(jù)。這驗證了容器內(nèi)外網(wǎng)絡的連通性以及數(shù)據(jù)的一致性。

第二部分:Redis 7.0 高性能鍵值存儲的部署

Redis作為高性能的Key-Value數(shù)據(jù)庫,常用于緩存、消息隊列等場景。Docker容器化部署Redis能夠極大地降低環(huán)境依賴配置的復雜度。

2.1 鏡像拉取與檢查

執(zhí)行命令拉取Redis 7.0版本的鏡像。

docker pull redis:7.0

Docker將自動從Registry中下載相關層文件。

下載完成后,通過鏡像列表命令確認Redis鏡像已存在于本地倉庫中,準備隨時調(diào)用。

docker images

2.2 容器啟動與端口映射

啟動Redis容器時,同樣需要關注端口映射。Redis默認端口為6379,此處將其映射至宿主機的8090端口。

docker run --name redis -d -p 8090:6379 redis:7.0
docker ps

docker ps命令用于列出當前正在運行的容器。輸出結果顯示,Redis容器狀態(tài)為Up,且端口映射規(guī)則0.0.0.0:8090->6379/tcp已生效。

2.3 命令行讀寫測試

為了驗證Redis服務是否可用,進入容器內(nèi)部并啟動redis-cli客戶端工具。

docker exec -it redis bash
redis-cli

在CLI中進行基礎的鍵值對設置與獲取操作。

set sellcount 1
get sellcount

操作結果顯示,鍵sellcount被成功設置為1,并能被正確讀取。

2.4 外部GUI工具連接驗證

使用Redis Desktop Manager或類似的圖形化工具進行連接測試。連接參數(shù)中主機地址為宿主機IP,端口為8090。連接測試通過提示“Connection successful”。

進入GUI界面后,瀏覽數(shù)據(jù)庫鍵值空間,可以直觀地發(fā)現(xiàn)之前通過命令行設置的sellcount鍵及其對應的值1。至此,Redis容器化部署及外部訪問配置全部完成。

第三部分:構建基于CentOS 7的C++編譯開發(fā)環(huán)境

除了部署現(xiàn)成的應用服務(如MySQL、Redis),Docker常被用于構建標準化的開發(fā)或編譯環(huán)境。本節(jié)將演示如何在CentOS 7的基礎鏡像上,解決官方源失效問題,并安裝GCC編譯器,最終編譯運行C代碼。

3.1 基礎操作系統(tǒng)鏡像準備

拉取CentOS 7的基礎鏡像。CentOS 7因其在服務器領域的廣泛應用,常被選作基礎運行環(huán)境。

docker pull centos:7

啟動容器并直接進入交互模式(Interactive Mode)。參數(shù)-it-i(交互式)和-t(分配偽終端)的組合,這使得用戶可以直接在容器內(nèi)獲得一個Bash Shell。

docker run -it --name mycpp centos:7 bash

命令執(zhí)行后,命令提示符從宿主機切換到了容器內(nèi)部(例如 [root@容器ID /]#),表明當前已處于容器的文件系統(tǒng)中。

此時,若在宿主機開啟另一個終端窗口執(zhí)行docker ps,可以看到名為mycpp的容器正在運行,執(zhí)行的命令為bash

3.2 解決YUM源失效問題(關鍵步驟)

由于CentOS 7已停止維護(EOL),官方的yum源地址大多已失效或歸檔,直接使用yum install往往會報錯。因此,配置可用的第三方鏡像源是構建環(huán)境的第一步。

首先,備份原有的repo配置文件,以防后續(xù)操作失誤需要恢復。

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

接著,下載國內(nèi)(如阿里云)提供的CentOS 7鏡像源配置文件。由于部分精簡版容器可能未預裝wget,優(yōu)先嘗試使用curl命令。

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

若環(huán)境中已包含wget,也可使用:

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

這一步將替換yum主要配置文件,指向依然提供服務的鏡像站點。

配置更改后,必須清理舊的yum緩存,防止元數(shù)據(jù)沖突。

yum clean all

系統(tǒng)將提示正在清理倉庫緩存。

隨后,重建yum緩存,這一步會從新的鏡像源下載軟件包的元數(shù)據(jù),建立本地索引,確保后續(xù)安裝軟件時能正確索引到包文件。

yum makecache

當看到Metadata Cache Created提示時,說明源配置成功。

3.3 GCC編譯工具鏈安裝

在源配置無誤后,開始安裝GNU編譯器集合(GCC)。

yum install gcc

Yum會自動解析依賴關系,下載并安裝GCC及其所需的庫文件(如glibc-devel, kernel-headers等)。

安裝過程中需確認安裝提示(輸入y或使用-y參數(shù))。待出現(xiàn)Complete!字樣,表明編譯環(huán)境已就緒。

3.4 C語言代碼編寫與編譯運行

為了驗證環(huán)境,編寫一段簡單的C代碼。可以使用容器內(nèi)自帶的編輯器(如vi)創(chuàng)建一個名為code.c的文件。文件中包含標準的輸入輸出邏輯。

保存文件后,調(diào)用GCC進行編譯。-o參數(shù)用于指定輸出的可執(zhí)行文件名。

gcc code.c -o code

若代碼無語法錯誤,編譯器將靜默完成編譯,生成名為code的可執(zhí)行文件。

最后,在當前目錄下運行該程序。

./code

程序成功輸出預期的結果,證明該基于Docker的CentOS 7 C++編譯環(huán)境已構建完整且功能正常。

總結

本文詳細記錄了在Docker環(huán)境下部署數(shù)據(jù)庫服務(MySQL)、緩存服務(Redis)以及構建自定義開發(fā)環(huán)境(CentOS+GCC)的全過程。從鏡像的獲取、容器的參數(shù)化啟動、網(wǎng)絡端口的映射機制,到容器內(nèi)部的系統(tǒng)配置與源切換,每一個步驟都緊密結合實際操作場景。這種容器化的部署方式,不僅隔離了應用環(huán)境,避免了宿主機環(huán)境的污染,更極大地提升了環(huán)境搭建的效率與可移植性,是現(xiàn)代DevOps流程中的基石。

到此這篇關于Docker實戰(zhàn)指南之MySQL、Redis與C++環(huán)境的深度容器化部署的文章就介紹到這了,更多相關Docker部署MySQL、Redis與C++環(huán)境內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • docker volumes 文件映射方式

    docker volumes 文件映射方式

    這篇文章主要介紹了docker volumes 文件映射的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • mac上使用docker搭建gitlab全過程

    mac上使用docker搭建gitlab全過程

    本文詳細介紹了在Mac上使用Docker搭建GitLab的過程,包括安裝Docker、拉取GitLab鏡像、啟動容器、訪問和配置GitLab等步驟,同時,還提供了重置管理員密碼的方法,幫助解決常見問題
    2024-11-11
  • Docker的底層原理及分析

    Docker的底層原理及分析

    Docker通過命名空間實現(xiàn)進程、網(wǎng)絡等隔離,利用Cgroups控制資源,聯(lián)合文件系統(tǒng)分層存儲并支持數(shù)據(jù)持久化,數(shù)據(jù)卷技術確保容器數(shù)據(jù)不受生命周期影響
    2025-09-09
  • Docker拉取鏡像部分成功部分失敗的解決方案

    Docker拉取鏡像部分成功部分失敗的解決方案

    最近在部署 Zitadel 身份認證平臺的過程中,遇到一個看似“隨機”的問題:Docker 有些鏡像可以拉取,有些卻一直超時失敗,最終通過配置 Docker 守護進程級別的代理 才解決,文章記錄整個問題分析和解決過程,便于自己和大家后期參考,需要的朋友可以參考下
    2025-05-05
  • 關于docker?compose安裝redis集群的問題(集群擴容、集群收縮)

    關于docker?compose安裝redis集群的問題(集群擴容、集群收縮)

    這篇文章主要介紹了docker?compose安裝redis集群、集群擴容、集群收縮,主要包括redis配置信息模板,編寫批量生成配置文件腳本的相關命令,需要的朋友參考下吧
    2022-03-03
  • docker圖形化工具portainer詳解

    docker圖形化工具portainer詳解

    這篇文章主要介紹了docker圖形化工具portainer的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借價值,需要的朋友可以參考下
    2024-01-01
  • docker部署gitlab以及修改初始密碼方式

    docker部署gitlab以及修改初始密碼方式

    這篇文章主要介紹了docker部署gitlab以及修改初始密碼方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Docker Swarm結合Docker Compose部署集群的實現(xiàn)

    Docker Swarm結合Docker Compose部署集群的實現(xiàn)

    本文主要介紹了Docker Swarm結合Docker Compose部署集群的實現(xiàn),通過部署和配置幫助讀者更好地理解并應用這些工具,感興趣的可以了解一下
    2023-12-12
  • 在docker容器中elasticsearch的導入導出方式

    在docker容器中elasticsearch的導入導出方式

    文章詳細介紹了如何使用Docker拉取Elasticsearch鏡像,并導出和導入索引數(shù)據(jù),還討論了在Elasticsearch?Head中解決請求頭顯示不正確的問題,包括從容器中復制文件、編輯文件和將文件回傳到容器
    2025-11-11
  • 基于Docker部署Hermes Agent并接入飛書機器人的完整指南

    基于Docker部署Hermes Agent并接入飛書機器人的完整指南

    在 AI 技術快速發(fā)展的今天,將大模型能力接入企業(yè)辦公系統(tǒng)已經(jīng)成為一種趨勢,本文將圍繞開源項目 Hermes Agent,手把手帶你完成從部署到接入飛書機器人的完整流程,需要的朋友可以參考下
    2026-04-04

最新評論

霍城县| 屏山县| 武隆县| 西林县| 镇沅| 西宁市| 武安市| 沈阳市| 正蓝旗| 青冈县| 苍山县| 富川| 固安县| 灵台县| 留坝县| 社旗县| 常熟市| 南岸区| 新田县| 抚州市| 吉安县| 岢岚县| 鄂州市| 高要市| 河曲县| 广州市| 河北省| 闵行区| 武安市| 北流市| 堆龙德庆县| 右玉县| 沛县| 新闻| 平湖市| 麻城市| 武城县| 泉州市| 枝江市| 出国| 富平县|