如何在 Docker 中设置和运行 Redis?

你好,有抱负的科技爱好者們!今天,我們將踏上一段令人興奮的旅程,進入 Docker 和 Redis 的世界。作為你們友好的鄰居電腦老師,我會一步一步地指導你們。別擔心你們對編程是新手——我們會從基礎開始,逐步學習。所以,來一杯咖啡(或者如果你喜歡,來一杯茶),我們一起來深入探究!

Docker Setting - Redis

Docker 和 Redis 是什麼?

在我們深入細節之前,讓我們快速了解 Docker 和 Redis 是什麼。

Docker 就像是你軟件的神奇運輸容器。它讓你可以將應用程序及其所有依賴打包成為軟件開發的標準化單位。想像一下如果你能夠打包你的整個電腦設置並發送給朋友——這就是 Docker 對應用程序所做的!

另一方面,Redis 是一個超快速的內存數據結構存儲。把它當作一個能夠快速記憶事物的強化便箋。它通常被用作文檔數據庫、緩存和消息代理。

現在我們已經有了基本的了解,讓我們看看如何能在 Docker 中運行 Redis!

如何使用 Dockerfile 在 Docker 中設置和運行 Redis?

首先,讓我們創建一個 Dockerfile 來設置我們的 Redis 容器。別擔心如果你一開始不理解——我們會一步步解析。

創建一個名為 Dockerfile(無副檔名)的新文件,並添加以下內容:

FROM redis:latest
EXPOSE 6379
CMD ["redis-server"]

讓我們分解這些:

  1. FROM redis:latest:這告訴 Docker 使用最新的 Redis 鏡像作為起點。
  2. EXPOSE 6379:這暴露了端口 6379,這是 Redis 的默認端口。
  3. CMD ["redis-server"]:這是當容器啟動時將運行的命令。

現在,讓我們構建和運行我們的 Docker 容器:

docker build -t my-redis .
docker run -d -p 6379:6379 --name redis-container my-redis

這些命令的作用如下:

  1. docker build -t my-redis .:這構建我們的 Docker 鏡像並標記為 "my-redis"。
  2. docker run -d -p 6379:6379 --name redis-container my-redis:這以分離模式 (-d) 運行我們的 Redis 容器,將我們機器上的端口 6379 映射到容器中的端口 6379 (-p 6379:6379),將容器命名為 "redis-container",並使用我們的 "my-redis" 鏡像。

恭喜你們!你現在已經在 Docker 容器中運行了 Redis。

如何使用 Docker Compose 在 Docker 中運行 Redis?

Docker Compose 就像是你 Docker 容器的指揮家。它讓你可以定義和運行多容器的 Docker 應用程序。即使我們現在只是運行 Redis,使用 Docker Compose 也會讓我們的日子更容易,將來當我們想要添加更多服務時。

創建一個名為 docker-compose.yml 的文件,並添加以下內容:

version: '3'
services:
redis:
image: redis:latest
ports:
- "6379:6379"

現在,要使用 Docker Compose 開始 Redis,只需運行:

docker-compose up -d

這個命令將會拉取 Redis 鏡像(如果它還不在你的系統上),創建一個容器,並以分離模式 (-d) 開始它。

要停止容器,你可以使用:

docker-compose down

這不是很好嗎?我們只需在 YAML 文件中寫幾行,就可以輕鬆管理我們的 Redis 容器!

如何在 Docker 容器中使用 Kubernetes 運行 Redis?

現在我們來進一步——Kubernetes!Kubernetes 就像是一個超級聰明的機器人,為你管理許多 Docker 容器。當你需要跨不同機器運行和管理多個容器時,它特別有用。

這裡有一個簡單的 Kubernetes 配置,用於運行 Redis:

apiVersion: apps/v1
kind: Deployment
metadata:
name: redis-deployment
spec:
replicas: 1
selector:
matchLabels:
app: redis
template:
metadata:
labels:
app: redis
spec:
containers:
- name: redis
image: redis:latest
ports:
- containerPort: 6379
---
apiVersion: v1
kind: Service
metadata:
name: redis-service
spec:
selector:
app: redis
ports:
- protocol: TCP
port: 6379
targetPort: 6379

將這個保存到一個名為 redis-kubernetes.yaml 的文件中。

要應用這個配置,你會使用:

kubectl apply -f redis-kubernetes.yaml

這會創建一個 Redis 布署和一個服務在 Kubernetes 中。布署保證總是有一個 Redis pod 運行,而服務則讓它在集群內可訪問。

要檢查你的 Redis pod 是否運行:

kubectl get pods

並查看服務:

kubectl get services

記住,在本地運行 Kubernetes 需要額外的設置(如 Minikube),所以這更像是對可能的東西的一瞥,而不是你應該立即嘗試的。

結論

哇,我們今天涉足了很多內容!我們從在簡單的 Docker 容器中運行 Redis 到使用 Kubernetes 協調它。讓我們回顧我們學到的方 法:

方法 難度 使用案例
Dockerfile 簡單 開發的快速設置
Docker Compose 中等 單個或多個容器的簡單管理
Kubernetes 複雜 適合生產的容器協調

記住,就像學習騎自行車一樣,掌握 Docker 和容器協調需要練習。如果它們立即不夠清晰,不要氣餒——持續實驗,你會達到的!

當我們結束時,我想到一個學生曾經告訴我,“Docker 一開始感覺像魔法,但現在是我最喜歡的技巧!”我希望在你們的旅程結束時,你們也會有同樣的感覺。

繼續編碼,持續學習,最重要的是,玩得開心!直到下一次,這個你們友好的鄰居電腦老師說再見。快樂的 Docker 運行!

Credits: Image by storyset