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

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

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

前言

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

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

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

1.1 鏡像獲取與版本選擇

首先,需要從遠(yuǎn)程倉(cāng)庫(kù)拉取MySQL 5.7版本的鏡像。選擇5.7版本而非最新的8.0版本,通常是因?yàn)榕f有系統(tǒng)的兼容性需求或?qū)μ囟ò姹痉€(wěn)定性的考量。

執(zhí)行拉取命令:

docker pull mysql:5.7

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

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

為了確認(rèn)鏡像已成功存儲(chǔ)在本地宿主機(jī)中,可以使用鏡像列表查詢命令。該命令將列出本地所有的鏡像倉(cāng)庫(kù)名稱、標(biāo)簽、鏡像ID、創(chuàng)建時(shí)間及大小。

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

鏡像準(zhǔn)備就緒后,下一步是根據(jù)該鏡像啟動(dòng)一個(gè)容器實(shí)例。在啟動(dòng)過(guò)程中,需要配置幾個(gè)關(guān)鍵參數(shù):

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

執(zhí)行如下命令:

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

命令執(zhí)行成功后,Docker守護(hù)進(jìn)程會(huì)返回一個(gè)長(zhǎng)字符串,即該容器的唯一ID,這標(biāo)志著容器已成功啟動(dòng)并在后臺(tái)運(yùn)行。

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

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

docker exec -it mysql bash

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

mysql -u root -p

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

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

show databases;

為了再次確認(rèn)當(dāng)前運(yùn)行的數(shù)據(jù)庫(kù)版本,執(zhí)行版本查詢語(yǔ)句。

select version();

返回結(jié)果明確顯示版本為5.7.44,符合預(yù)期。

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

接下來(lái)進(jìn)行實(shí)際的業(yè)務(wù)模擬操作。首先創(chuàng)建一個(gè)名為test_db的測(cè)試數(shù)據(jù)庫(kù)。

create database test_db;

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

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

use test_db;

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

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

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

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

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

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

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

1.5 外部客戶端連接驗(yàn)證

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

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

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

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

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

2.1 鏡像拉取與檢查

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

docker pull redis:7.0

Docker將自動(dòng)從Registry中下載相關(guān)層文件。

下載完成后,通過(guò)鏡像列表命令確認(rèn)Redis鏡像已存在于本地倉(cāng)庫(kù)中,準(zhǔn)備隨時(shí)調(diào)用。

docker images

2.2 容器啟動(dòng)與端口映射

啟動(dòng)Redis容器時(shí),同樣需要關(guān)注端口映射。Redis默認(rèn)端口為6379,此處將其映射至宿主機(jī)的8090端口。

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

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

2.3 命令行讀寫測(cè)試

為了驗(yàn)證Redis服務(wù)是否可用,進(jìn)入容器內(nèi)部并啟動(dòng)redis-cli客戶端工具。

docker exec -it redis bash
redis-cli

在CLI中進(jìn)行基礎(chǔ)的鍵值對(duì)設(shè)置與獲取操作。

set sellcount 1
get sellcount

操作結(jié)果顯示,鍵sellcount被成功設(shè)置為1,并能被正確讀取。

2.4 外部GUI工具連接驗(yàn)證

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

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

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

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

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

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

docker pull centos:7

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

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

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

此時(shí),若在宿主機(jī)開(kāi)啟另一個(gè)終端窗口執(zhí)行docker ps,可以看到名為mycpp的容器正在運(yùn)行,執(zhí)行的命令為bash。

3.2 解決YUM源失效問(wèn)題(關(guān)鍵步驟)

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

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

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

接著,下載國(guó)內(nèi)(如阿里云)提供的CentOS 7鏡像源配置文件。由于部分精簡(jiǎn)版容器可能未預(yù)裝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主要配置文件,指向依然提供服務(wù)的鏡像站點(diǎn)。

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

yum clean all

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

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

yum makecache

當(dāng)看到Metadata Cache Created提示時(shí),說(shuō)明源配置成功。

3.3 GCC編譯工具鏈安裝

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

yum install gcc

Yum會(huì)自動(dòng)解析依賴關(guān)系,下載并安裝GCC及其所需的庫(kù)文件(如glibc-devel, kernel-headers等)。

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

3.4 C語(yǔ)言代碼編寫與編譯運(yùn)行

為了驗(yàn)證環(huán)境,編寫一段簡(jiǎn)單的C代碼??梢允褂萌萜鲀?nèi)自帶的編輯器(如vi)創(chuàng)建一個(gè)名為code.c的文件。文件中包含標(biāo)準(zhǔn)的輸入輸出邏輯。

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

gcc code.c -o code

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

最后,在當(dāng)前目錄下運(yùn)行該程序。

./code

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

總結(jié)

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

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

相關(guān)文章

  • docker volumes 文件映射方式

    docker volumes 文件映射方式

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

    mac上使用docker搭建gitlab全過(guò)程

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

    Docker的底層原理及分析

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

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

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

    關(guān)于docker?compose安裝redis集群的問(wèn)題(集群擴(kuò)容、集群收縮)

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

    docker圖形化工具portainer詳解

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

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

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

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

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

    在docker容器中elasticsearch的導(dǎo)入導(dǎo)出方式

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

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

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

最新評(píng)論

轮台县| 张家港市| 堆龙德庆县| 定结县| 斗六市| 呼图壁县| 万山特区| 洮南市| 龙州县| 连平县| 宁强县| 保德县| 永州市| 新疆| 卢龙县| 开原市| 浪卡子县| 方城县| 大渡口区| 民勤县| 东丰县| 玛纳斯县| 留坝县| 栾川县| 乌海市| 光泽县| 信阳市| 诸暨市| 盐亭县| 汪清县| 漳浦县| 蕉岭县| 永定县| 福泉市| 和平区| 雷波县| 苗栗县| 南召县| 武宣县| 朝阳县| 和平区|