Ubuntu使用Docker部署Redis并實(shí)現(xiàn)遠(yuǎn)程訪問本地?cái)?shù)據(jù)庫全過程
前言
本文主要介紹如何在Ubuntu使用Docker部署Redis容器并結(jié)合cpolar內(nèi)網(wǎng)穿透工具實(shí)現(xiàn)無公網(wǎng)ip環(huán)境遠(yuǎn)程訪問本地?cái)?shù)據(jù)庫。
Redis作為一款高速緩存的key value鍵值對(duì)的數(shù)據(jù)庫,在許許多多的場(chǎng)景中廣泛使用,由于是把數(shù)據(jù)存儲(chǔ)在內(nèi)存中,所以讀寫效率極高。而在docker中部署Redis也非常簡(jiǎn)單,下面就來一起看看吧。
1. 安裝Docker步驟
本文中使用的操作系統(tǒng)為Ubuntu 22.04
添加Docker源
# Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update
安裝 Docker 包
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
通過運(yùn)行映像來驗(yàn)證 Docker 引擎安裝是否成功
sudo docker run hello-world
此命令下載測(cè)試映像并在容器中運(yùn)行它。當(dāng)容器運(yùn)行,它打印確認(rèn)消息并退出。
2. 使用docker拉取redis鏡像
首先在終端中執(zhí)行下方命令拉取鏡像:
sudo docker pull redis
然后執(zhí)行查看鏡像命令:
sudo docker images
可以看到成功拉取了Redis鏡像。
3. 啟動(dòng)redis容器
在啟動(dòng)容器前,需要簡(jiǎn)單修改一下Redis外部掛載的配置文件。
本教程中,首先創(chuàng)建了/usr/local/redis/conf/redis.conf文件,
然后使用nano編輯器寫入了網(wǎng)上找的redis.conf文件,保存后退出編輯器。
#任何ip可以訪問 bind 0.0.0.0 #守護(hù)進(jìn)程 #daemonize yes daemonize yes #不啟用保護(hù)模式 protected-mode no #指定redis運(yùn)行的端口 port 6379 tcp-backlog 511 timeout 0 #持久化?件名稱 dbfilename xdclass.rdb #持久化?件存儲(chǔ)路徑 dir /data/ #持久化策略, 10秒內(nèi)有個(gè)1個(gè)key改動(dòng),執(zhí)?快照 save 10 1 ######之前配置###### #導(dǎo)出rdb數(shù)據(jù)庫?件壓縮字符串和對(duì)象,默認(rèn)是yes,會(huì)浪費(fèi)CPU但是節(jié)省空間 rdbcompression yes # 導(dǎo)?時(shí)是否檢查 rdbchecksum yes #aof持久化配置 #appendonly yes #appendfilename "appendonly.aof" #appendfsync everysec # aof重寫期間是否同步 no-appendfsync-on-rewrite no # 重寫觸發(fā)配置 auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb # 加載aof時(shí)如果有錯(cuò)如何處理 # yes表示如果aof尾部?件出問題,寫log記錄并繼續(xù)執(zhí)?。 no表示提示寫?等待修復(fù)后寫? aof-load-truncated yes
接下來在終端中執(zhí)行下方命令啟動(dòng)容器:
sudo docker run -p 6379:6379 --name redis -v /usr/local/redis/data:/data -v /usr/local/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf
這里我給容器的名稱起為redis,您可以根據(jù)需要替換成其他名稱。
然后執(zhí)行下方命令查看容器是否正在運(yùn)行:
sudo docker ps
可以看到剛才創(chuàng)建的myredis容器正在運(yùn)行中。
4. 本地連接測(cè)試
4.1 安裝redis圖形化界面工具
現(xiàn)在我們已經(jīng)在docker中本地部署了redis容器,如果要在本地進(jìn)行連接測(cè)試,
可以下載redis圖形化界面工具:Redis Desktop Manager
下載地址:https://pan.baidu.com/s/1LhqTNsQ2Xsqv7dsmiaM57A
提取碼: fxsu
4.2 使用RDM連接測(cè)試
默認(rèn)安裝完成后,點(diǎn)擊左下紅框位置的連接redis server按鈕:
在彈出的窗口中,需要填入本機(jī)ip地址和redis的端口號(hào):
輸入后點(diǎn)擊連接測(cè)試,如看到彈出框提示成功連接,即本地連接redis測(cè)試成功。
5. 公網(wǎng)遠(yuǎn)程訪問本地redis
不過我們目前只能在本地使用剛剛部署的Jupyer Notebook,如果身在異地,想要遠(yuǎn)程訪問在本地部署的redis容器,但又沒有公網(wǎng)ip怎么辦呢?
我們可以使用cpolar內(nèi)網(wǎng)穿透工具來實(shí)現(xiàn)無公網(wǎng)ip環(huán)境下的遠(yuǎn)程訪問需求。
5.1 內(nèi)網(wǎng)穿透工具安裝
下面是安裝cpolar步驟:
cpolar官網(wǎng)地址: https://www.cpolar.com
- 使用一鍵腳本安裝命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
- 向系統(tǒng)添加服務(wù)
sudo systemctl enable cpolar
- 啟動(dòng)cpolar服務(wù)
sudo systemctl start cpolar
cpolar安裝成功后,在外部瀏覽器上訪問Linux 的9200端口即:【http://服務(wù)器的局域網(wǎng)ip:9200】,使用cpolar賬號(hào)登錄,登錄后即可看到cpolar web 配置界面,結(jié)下來在web 管理界面配置即可。
5.2 創(chuàng)建遠(yuǎn)程連接公網(wǎng)地址
登錄cpolar web UI管理界面后,點(diǎn)擊左側(cè)儀表盤的隧道管理——創(chuàng)建隧道:
- 隧道名稱:可自定義,注意不要與已有的隧道名稱重復(fù),本例使用了:redis
- 協(xié)議:TCP
- 本地地址:6379
- 端口類型:隨機(jī)臨時(shí)TCP端口
- 地區(qū):選擇China Top
點(diǎn)擊創(chuàng)建
創(chuàng)建成功后,打開左側(cè)在線隧道列表,可以看到剛剛通過創(chuàng)建隧道生成了公網(wǎng)地址,接下來就可以在其他電腦(異地)上,將該地址與端口號(hào)分別復(fù)制到Redis Desktop Manager訪問即可。
如下圖所示,ip地址位置填寫:12.tcp.cpolar.top,端口號(hào)填寫:13983 ,點(diǎn)擊鏈接測(cè)試:
可以看到連接成功!
小結(jié)
為了方便演示,我們?cè)谏线叺牟僮鬟^程中使用了cpolar生成的TCP公網(wǎng)地址隧道,其公網(wǎng)地址是隨機(jī)生成的。
這種隨機(jī)地址的優(yōu)勢(shì)在于建立速度快,可以立即使用。然而,它的缺點(diǎn)是網(wǎng)址是隨機(jī)生成,這個(gè)地址在24小時(shí)內(nèi)會(huì)發(fā)生隨機(jī)變化,更適合于臨時(shí)使用。
如果有長(zhǎng)期遠(yuǎn)程訪問Redis的需求,但又不想每天重新配置公網(wǎng)地址,還想地址好看又好記,那我推薦大家選擇使用固定的TCP地址的方式來遠(yuǎn)程訪問。
5.3 使用固定TCP地址遠(yuǎn)程訪問
接下來保留一個(gè)固定TCP地址,登錄cpolar官網(wǎng),點(diǎn)擊左側(cè)的預(yù)留,找到保留的TCP地址,為遠(yuǎn)程服務(wù)器連接保留一個(gè)固定的地址:
- 地區(qū):選擇China VIP
- 描述:即備注,可自定義,本例使用red123
點(diǎn)擊保留
地址保留成功后,復(fù)制生成的公網(wǎng)地址,打開cpolar web ui管理界面,點(diǎn)擊左側(cè)儀表盤的隧道管理——隧道列表,找到我們剛才創(chuàng)建的隨機(jī)公網(wǎng)地址隧道 redis,點(diǎn)擊編輯
修改隧道信息,將剛才保留成功的固定TCP地址配置到隧道中
- 端口類型:選擇固定TCP端口
- 預(yù)留的TCP地址:復(fù)制粘貼官網(wǎng)保留成功的地址,本例中為:1.tcp.vip.cpolar.cn:23876
點(diǎn)擊更新
隧道更新成功后,點(diǎn)擊左側(cè)儀表盤的狀態(tài)——在線隧道列表,可以看到公網(wǎng)地址已經(jīng)更新為了固定TCP地址。
接下來與之前的操作一樣,可以在其他電腦(異地)上,使用這個(gè)固定的TCP地址訪問redis即可。
ip地址位置填寫:1.tcp.vip.cpolar.cn,端口號(hào)填寫:23876 ,點(diǎn)擊鏈接測(cè)試:
可以看到,使用固定的TCP地址成功遠(yuǎn)程連接了本地Redis!使用cpolar內(nèi)網(wǎng)穿透工具無需購買域名服務(wù)器,也不用設(shè)置路由器那么麻煩,輕松實(shí)現(xiàn)大家在公網(wǎng)遠(yuǎn)程訪問本地服務(wù)的需求!
總結(jié)
到此這篇關(guān)于Ubuntu使用Docker部署Redis并實(shí)現(xiàn)遠(yuǎn)程訪問本地?cái)?shù)據(jù)庫的文章就介紹到這了,更多相關(guān)Docker部署Redis遠(yuǎn)程訪問本地?cái)?shù)據(jù)庫內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
煮餃子論云原生docker與kubernetes之間的關(guān)系
這篇文章主要為大家用煮餃子論的道理來為大家講解一下云原生docker與kubernetes之間的關(guān)系,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-03-03Docker 容器生命周期 架構(gòu) 以及和VM之間的差異詳解
這篇文章主要介紹了Docker 容器生命周期 架構(gòu) 以及和VM之間的差異詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11Docker安裝MySQL并使用Navicat連接的使用示例
在Docker里運(yùn)行MySQL的方式還是很方便的,本文主要介紹了Docker安裝MySQL并使用Navicat連接的使用示例,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10docker容器增加或者修改容器映射端口的實(shí)現(xiàn)方法
在只有使用docker安裝的容器,沒有使用docker-compose或者其他客戶端工具,如果要增加或者修改容器端口,也是可以增加或者修改容器端口映射,本文給大家介紹了docker容器增加或者修改容器映射端口的實(shí)現(xiàn)方法,需要的朋友可以參考下2025-01-01兩臺(tái)互通的服務(wù)器使用Docker部署一主兩從MySQL8.0.35的方法
本文主要介紹了在兩臺(tái)服務(wù)器上使用Docker部署一主兩從的MySQL?8.0.35架構(gòu),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-03-03