溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Redis快速部署為Docker容器的實(shí)現(xiàn)方法是什么

發(fā)布時(shí)間:2021-12-27 09:34:29 來(lái)源:億速云 閱讀:144 作者:柒染 欄目:開(kāi)發(fā)技術(shù)

Redis快速部署為Docker容器的實(shí)現(xiàn)方法是什么,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

Redis是一種內(nèi)存鍵值存儲(chǔ),可以保存高性能的抽象數(shù)據(jù)結(jié)構(gòu)。開(kāi)源軟件通常用于數(shù)據(jù)庫(kù)、消息傳遞和緩存功能。

Docker 是將應(yīng)用程序打包到容器中的領(lǐng)先工具包。它允許您將軟件組件隔離到具有自己的文件系統(tǒng)的獨(dú)立環(huán)境中。

我們將使用 Docker 使用Docker Hub 上的官方鏡像快速部署 Redis 。與裸機(jī)安裝相比,Docker 實(shí)現(xiàn)了更簡(jiǎn)單的設(shè)置過(guò)程,并且不會(huì)用新包污染您的主機(jī)。在繼續(xù)之前,請(qǐng)確保您的主機(jī)上安裝了正常運(yùn)行的 Docker。

入門(mén)

Redis 鏡像包括服務(wù)器組件和官方 CLI。它已預(yù)先配置為在您啟動(dòng)新容器時(shí)使用運(yùn)行的默認(rèn)配置值啟動(dòng)服務(wù)器。

映像的變體可用于覆蓋不同的 Redis 版本(5.0 和 6.0)和操作系統(tǒng)(Alpine 和 Debian)。瀏覽標(biāo)簽列表以找到適合您環(huán)境的最佳選項(xiàng)。

最簡(jiǎn)單的部署如下:

docker run --name redis -d -p 6379:6379 redis:6.0

這將啟動(dòng)一個(gè)名為redisrunning Redis 6.0的新容器。該-d標(biāo)志用于從容器中分離。服務(wù)器將一直在后臺(tái)運(yùn)行,直到您使用docker stop redis.

Redis 默認(rèn)監(jiān)聽(tīng) 6379 端口。該-p標(biāo)志將此端口綁定到您的主機(jī)。您的應(yīng)用程序?qū)⒛軌蛟L問(wèn) Redis localhost:6379。請(qǐng)注意,這是不安全的——如果您的機(jī)器暴露在互聯(lián)網(wǎng)上,任何人都可以訪問(wèn)您的 Redis 數(shù)據(jù)!

數(shù)據(jù)存儲(chǔ)

Redis 支持多種持久性機(jī)制,可以將您的內(nèi)存數(shù)據(jù)庫(kù)保存到磁盤(pán)。數(shù)據(jù)將保存到/data容器中的目錄中。由于 Docker 容器是臨時(shí)的,您需要將卷掛載到此目錄。否則,當(dāng)您的容器停止時(shí),您的數(shù)據(jù)將丟失。

docker run --name redis -d \
    -v redis-data:/data
    redis:6.0 --save 60 1

該–save標(biāo)志被傳遞到 Redis 服務(wù)器。它配置要使用的持久性策略。此示例每秒鐘寫(xiě)入一次數(shù)據(jù)庫(kù)快照60。除非1自上次快照后發(fā)生數(shù)據(jù)庫(kù)寫(xiě)入,否則將跳過(guò)該操作。

一個(gè)被調(diào)用的 Docker 卷redis-data由該-v標(biāo)志創(chuàng)建。這會(huì)將您的數(shù)據(jù)存儲(chǔ)在容器外,以便在重新啟動(dòng)后仍可訪問(wèn)。該卷將一直存在,直到通過(guò)運(yùn)行將其刪除docker volumes rm redis-data。

配置您的服務(wù)器

添加配置參數(shù)的最快方法是將 CLI 參數(shù)作為docker run命令的一部分傳遞給 Redis 服務(wù)器。–save上面的例子說(shuō)明了這一點(diǎn)。圖像名稱 in 之后的任何內(nèi)容docker run都將傳遞給在容器內(nèi)執(zhí)行的命令。對(duì)于 Redis 映像,該命令是 Redis 服務(wù)器。

使用 CLI 標(biāo)志很快就會(huì)變得重復(fù)。您可以通過(guò)將路徑作為服務(wù)器的第一個(gè)參數(shù)傳遞來(lái)使 Redis使用配置文件。該文件通常位于/usr/local/etc/redis/redis.conf. 使用 Docker 綁定安裝redis.conf從安裝到容器的本地文件系統(tǒng)獲?。?/p>

docker run --name redis -d \
    -v redis-data:/data
    -v ./redis-conf:/usr/local/etc/redis
    redis:6.0 /usr/local/etc/redis.conf

在您的工作目錄中放置一個(gè)redis.confinside redis-conf。Docker 會(huì)將此路徑掛載到容器中,讓 Redis 可以訪問(wèn)docker run命令中指定的文件。

管理Redis安全

默認(rèn)情況下,Redis Docker 映像配置為在不受保護(hù)的模式下運(yùn)行 Redis。這使得使用 Docker 網(wǎng)絡(luò)從其他 Docker 容器訪問(wèn) Redis 服務(wù)器變得更加容易。但是,這也意味著可以到達(dá)您的容器的任何東西都可以完全訪問(wèn)您的數(shù)據(jù)。

保護(hù)模式是Redis 的一項(xiàng)功能,它僅響應(yīng)從主機(jī)的環(huán)回地址發(fā)出的未經(jīng)身份驗(yàn)證的查詢,例如localhost. 您可以通過(guò)添加protected-mode yes到您的redis.conf. 當(dāng)與 Dockerized 安裝一起使用時(shí),這將導(dǎo)致 Redis 只能在其自己的容器內(nèi)訪問(wèn),這通常并不理想。

您可以通過(guò)添加requirepass example到您的redis.conf. Redis 將只接受來(lái)自提供配置密碼的客戶端的查詢。Redis 6 還支持功能更齊全的訪問(wèn)控制,讓您可以設(shè)置具有不同權(quán)限的多個(gè)用戶帳戶。

要使用身份驗(yàn)證,請(qǐng)按照上一節(jié)中的指導(dǎo)創(chuàng)建 Redis 配置文件并將其掛載到您的容器中。如果您不想設(shè)置密碼,只需將其加入應(yīng)用程序所需的 Docker 網(wǎng)絡(luò),即可確保您的安裝安全。不要在沒(méi)有先設(shè)置身份驗(yàn)證的情況下將端口 6379 綁定到您的主機(jī)。

使用您的 Redis 安裝

現(xiàn)在 Redis 已完全設(shè)置,您可以繼續(xù)從客戶端訪問(wèn)它。如果您從主機(jī)連接,則可以使用 Docker 容器的 IP(通過(guò)運(yùn)行可見(jiàn)docker inspect redis,根據(jù)容器名稱進(jìn)行調(diào)整)和端口6379。

要從另一個(gè) Docker 容器訪問(wèn) Redis,最好將兩個(gè)容器都加入一個(gè) Docker 網(wǎng)絡(luò):

docker network create redis
docker run --name redis --network redis -d redis:6.0
docker run --name api --network redis -d my-api:latest

現(xiàn)在,您的應(yīng)用程序容器將能夠通過(guò)redis主機(jī)名上的端口 6379 訪問(wèn) Redis 。當(dāng)它們共享一個(gè) Docker 網(wǎng)絡(luò)時(shí),Docker 使容器名稱可以作為主機(jī)名訪問(wèn)。

Redis快速部署為Docker容器的實(shí)現(xiàn)方法是什么

您可以使用redis-cli容器映像中包含的二進(jìn)制文件手動(dòng)與數(shù)據(jù)庫(kù)交互。以分離模式 ( -d)啟動(dòng)您的容器,使其在后臺(tái)運(yùn)行。然后使用docker exec運(yùn)行redis-cli命令:

docker exec -it redis-container redis-cli

這將使您進(jìn)入容器內(nèi)的 Redis CLI 會(huì)話。

概括

Docker 可以讓您快速輕松地啟動(dòng)新的 Redis 實(shí)例,而無(wú)需將軟件安裝到您的機(jī)器上。使用官方 Docker 鏡像啟動(dòng)你的容器,然后添加命令標(biāo)志或掛載一個(gè)配置文件以滿足你的需要。

需要始終牢記的兩件事是存儲(chǔ)和安全性:如果您需要使用 Redis 持久性功能,則應(yīng)該使用 Docker 卷以避免丟失數(shù)據(jù)。請(qǐng)記住,Dockerized Redis 默認(rèn)為無(wú)保護(hù)模式且無(wú)需身份驗(yàn)證,因此在最壞的情況下,暴露 6379 端口可能會(huì)產(chǎn)生災(zāi)難性的后果。

關(guān)于Redis快速部署為Docker容器的實(shí)現(xiàn)方法是什么問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI