文章目錄
- 前言
- 1. 安裝Docker步驟
- 2. 使用docker拉取redis鏡像
- 3. 啟動redis容器
- 4. 本地連接測試
- 4.1 安裝redis圖形化界面工具
- 4.2 使用RDM連接測試
- 5. 公網遠程訪問本地redis
- 5.1 內網穿透工具安裝
- 5.2 創建遠程連接公網地址
- 5.3 使用固定TCP地址遠程訪問
前言
本文主要介紹如何在Linux Ubuntu系統本地部署Redis容器,并結合cpolar內網穿透工具配置公網地址實現遠程訪問本地數據庫。
Redis作為一款高速緩存的key value鍵值對的數據庫,在許許多多的場景中廣泛使用,由于是把數據存儲在內存中,所以讀寫效率極高。而在docker中部署Redis也非常簡單,下面就來一起看看吧。
1. 安裝Docker步驟
本文中使用的操作系統為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
通過運行映像來驗證 Docker 引擎安裝是否成功
sudo docker run hello-world
此命令下載測試映像并在容器中運行它。當容器運行,它打印確認消息并退出。
2. 使用docker拉取redis鏡像
首先在終端中執行下方命令拉取鏡像:
sudo docker pull redis
然后執行查看鏡像命令:
sudo docker images
可以看到成功拉取了Redis鏡像。
3. 啟動redis容器
在啟動容器前,需要簡單修改一下Redis外部掛載的配置文件。
本教程中,首先創建了/usr/local/redis/conf/redis.conf文件,
然后使用nano編輯器寫入了網上找的redis.conf文件,保存后退出編輯器。
#任何ip可以訪問
bind 0.0.0.0
#守護進程
#daemonize yes
daemonize yes
#不啟用保護模式
protected-mode no
#指定redis運行的端口
port 6379
tcp-backlog 511
timeout 0
#持久化?件名稱
dbfilename xdclass.rdb
#持久化?件存儲路徑
dir /data/
#持久化策略, 10秒內有個1個key改動,執?快照
save 10 1
######之前配置######
#導出rdb數據庫?件壓縮字符串和對象,默認是yes,會浪費CPU但是節省空間
rdbcompression yes
# 導?時是否檢查
rdbchecksum yes
#aof持久化配置
#appendonly yes
#appendfilename "appendonly.aof"
#appendfsync everysec
# aof重寫期間是否同步
no-appendfsync-on-rewrite no
# 重寫觸發配置
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
# 加載aof時如果有錯如何處理
# yes表示如果aof尾部?件出問題,寫log記錄并繼續執?。
no表示提示寫?等待修復后寫?
aof-load-truncated yes
接下來在終端中執行下方命令啟動容器:
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,您可以根據需要替換成其他名稱。
然后執行下方命令查看容器是否正在運行:
sudo docker ps
可以看到剛才創建的myredis容器正在運行中。
4. 本地連接測試
4.1 安裝redis圖形化界面工具
現在我們已經在docker中本地部署了redis容器,如果要在本地進行連接測試,
可以下載redis圖形化界面工具:Redis Desktop Manager
下載地址:https://pan.baidu.com/s/19FLBKyQkRlK4ktZFRg3j6Q?pwd=6666
提取碼:6666
4.2 使用RDM連接測試
默認安裝完成后,點擊左下紅框位置的連接redis server按鈕:
在彈出的窗口中,需要填入本機ip地址和redis的端口號:
輸入后點擊連接測試,如看到彈出框提示成功連接,即本地連接redis測試成功。
5. 公網遠程訪問本地redis
不過我們目前只能在本地使用剛剛部署的Jupyer Notebook,如果身在異地,想要遠程訪問在本地部署的redis容器,但又沒有公網ip怎么辦呢?
我們可以使用cpolar內網穿透工具來實現無公網ip環境下的遠程訪問需求。
5.1 內網穿透工具安裝
下面是安裝cpolar步驟:
cpolar官網地址: https://www.cpolar.com
- 使用一鍵腳本安裝命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
- 向系統添加服務
sudo systemctl enable cpolar
- 啟動cpolar服務
sudo systemctl start cpolar
cpolar安裝成功后,在外部瀏覽器上訪問Linux 的9200端口即:【http://服務器的局域網ip:9200】,使用cpolar賬號登錄,登錄后即可看到cpolar web 配置界面,結下來在web 管理界面配置即可。
5.2 創建遠程連接公網地址
登錄cpolar web UI管理界面后,點擊左側儀表盤的隧道管理——創建隧道:
- 隧道名稱:可自定義,注意不要與已有的隧道名稱重復,本例使用了:redis
- 協議:TCP
- 本地地址:6379
- 端口類型:隨機臨時TCP端口
- 地區:選擇China Top
點擊創建
創建成功后,打開左側在線隧道列表,可以看到剛剛通過創建隧道生成了公網地址,接下來就可以在其他電腦(異地)上,將該地址與端口號分別復制到Redis Desktop Manager訪問即可。
如下圖所示,ip地址位置填寫:12.tcp.cpolar.top,端口號填寫:13983 ,點擊鏈接測試:
可以看到連接成功!
小結
為了方便演示,我們在上邊的操作過程中使用了cpolar生成的TCP公網地址隧道,其公網地址是隨機生成的。
這種隨機地址的優勢在于建立速度快,可以立即使用。然而,它的缺點是網址是隨機生成,這個地址在24小時內會發生隨機變化,更適合于臨時使用。
如果有長期遠程訪問Redis的需求,但又不想每天重新配置公網地址,還想地址好看又好記,那我推薦大家選擇使用固定的TCP地址的方式來遠程訪問。
5.3 使用固定TCP地址遠程訪問
接下來保留一個固定TCP地址,登錄cpolar官網,點擊左側的預留,找到保留的TCP地址,為遠程服務器連接保留一個固定的地址:
- 地區:選擇China VIP
- 描述:即備注,可自定義,本例使用red123
點擊保留
地址保留成功后,復制生成的公網地址,打開cpolar web ui管理界面,點擊左側儀表盤的隧道管理——隧道列表,找到我們剛才創建的隨機公網地址隧道 redis,點擊編輯
修改隧道信息,將剛才保留成功的固定TCP地址配置到隧道中
- 端口類型:選擇固定TCP端口
- 預留的TCP地址:復制粘貼官網保留成功的地址,本例中為:1.tcp.vip.cpolar.cn:23876
點擊更新
隧道更新成功后,點擊左側儀表盤的狀態——在線隧道列表,可以看到公網地址已經更新為了固定TCP地址。
接下來與之前的操作一樣,可以在其他電腦(異地)上,使用這個固定的TCP地址訪問redis即可。
ip地址位置填寫:1.tcp.vip.cpolar.cn,端口號填寫:23876 ,點擊鏈接測試:
可以看到,使用固定的TCP地址成功遠程連接了本地Redis!使用cpolar內網穿透工具無需購買域名服務器,也不用設置路由器那么麻煩,輕松實現大家在公網遠程訪問本地服務的需求!