天天看點

docker部署redis記錄,樓主親測無異常

docker部署redis記錄,樓主親測無異常

項目中使用redis很常見,是以安裝redis是每個小夥伴都應該熟練的技能。

這裡定義兩個概念 ,請記住。

  1. 宿主:你正在操作的linux系統(或是雲伺服器或者是實體服務)
  2. 容器:也就是在docker中虛拟出來的linux

1.安裝redis

1.拉取鏡像

這裡也可以加上版本号,如果不加,預設最新。

1. docker pull redis
2. 複制代碼      

2.檢視本地鏡像

檢視本地鏡像是否成功。

1. docker images
2. 複制代碼      
docker部署redis記錄,樓主親測無異常

3.修改配置

在linux建立任意一檔案夾,這裡樓主建立了/usr/local/redis 。在官網或者其他redis工程中,擷取redis.conf,并以下配置修改好的後放入上文建立的檔案夾中。

1. #bind 0.0.0.0 #帶bind的注釋掉
2. protected-mode yes #開啟密碼 雲服務上一定要開啟密碼,防火牆 不信你就試試!!!!!
3. daemonize no  #一定改為no 否則redis不能啟動 而且沒有日志!!!!!!!!!!
4. requirepass 123 #密碼
5. 複制代碼      

4.建立資料檔案夾

建立/usr/local/docker/data檔案夾,放置容易映射過來的資料(對應着下文參數,可以修改,如果修改自己對應一下)

docker容器會與主控端建立連接配接,然後将資料同步到主控端中,這樣就不用每次都進入docker容器操作檔案了。

下圖為安裝後,宿主映射出來的檔案資料。

docker部署redis記錄,樓主親測無異常

5.運作容器

1. docker run -p 6379:6379 --name redis -v /usr/local/redis/redis.conf:/etc/redis/redis.conf  -v /usr/local/docker/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes 
2. 複制代碼      

指令中的檔案夾路徑是可以更改的,請按照個人環境自行修改。

6.指令解釋

  • -p 6379:6379:第一個6379是主控端的端口,第二個6379是reids容器的向外提供的端口。這個意思也就是宿主使用6379端口接收redis容器6379發出的請求。
  • --name redis :容器名稱
  • -v /usr/local/redis/redis.conf:/etc/redis/redis.conf :将上文指定宿主/usr/local/redis/redis.conf檔案映射到容器的/etc/redis/redis.conf
  • -v /usr/local/docker/data:/data :将容器的資料映射過來
  • -d redis redis-server /etc/redis/redis.conf :将容器下/etc/redis/redis.conf檔案作為容器redis的配置啟動項
  • --appendonly yes :辨別開啟持久化 這裡隻是示範可以通過這種方式設定參數

7.查詢運作資訊

1. docker ps
2. 複制代碼      
docker部署redis記錄,樓主親測無異常

2.常見異常

1. changing ownership of '.': Permission denied或者chmod: changing permissions of'/var/lib/postgresql/data': Permission denied
2. 複制代碼      

以上錯誤時執行

-v /usr/local/redis/redis.conf:/etc/redis/redis.conf

出現的,因為docker容器沒有主控端的權限是以報錯!

結論

關閉SELinux

1. getenforce #檢視SELinux狀态 permissive關閉狀态 enforcing開啟狀态
2. setenforce 0 #臨時關閉 
3. setenforce 1 #臨時開啟 
4. 
5. //永久關閉
6. 修改 /etc/selinux/config
7. SELINUX=enforcing改為SELINUX=disabled      

繼續閱讀