首頁 >資料庫 >Redis >解決Redis容器使用redis.conf啟動失敗

解決Redis容器使用redis.conf啟動失敗

咔咔
咔咔原創
2020-05-21 12:05:493788瀏覽

本文實作功能

解決redis容器啟動redis.conf時啟動及失敗

簡單了解redis.conf的一些設定

認識docker run指令的參數

了解redis.conf的設定檔

#開啟redis.conf後會看到很多無用的資訊

解決Redis容器使用redis.conf啟動失敗

我們使用grep指令來簡單的處理一個下,然後就可以看到redis.conf的所有設定訊息,但是現在輸入的指令是不可以編輯的

執行指令:cat redis.conf | grep -v "#" | grep -v "^$"

解決Redis容器使用redis.conf啟動失敗

#上邊的這個雖然把redis.conf的所有設定資訊弄出來了,但是不能修改,我們可以把這個內容輸出到另外一個檔案裡邊,這個時候就可以在redis下可以看到一個redis-test.conf的一個檔案

執行指令:cat redis. conf | grep -v "#" | grep -v "^$" ->redis-test.conf

解決Redis容器使用redis.conf啟動失敗

這時候就可以在redis-test.conf裡邊修改一些配置資訊

解決Redis容器使用redis.conf啟動失敗

在這裡我們先了解幾個配置,後邊的配置喀喀爾會在後續的檔案中依序寫出

  •  daemonize no :redis預設是不作為守護程式使用的,這也就是說為什麼在你不修改設定檔時直接使用redis-server  /redis/redis.conf  啟動redis會直接顯示一個服務,你在這個終端就沒有辦法操作其他,只能新開一個終端機來連接redis

  •  requirepass foobared :redis預設是沒有密碼連接的,但是為了安全密碼還是需要設定的

  •  bind 127.0.0.1:這個設定項通常是直接註解掉的,這個設定開啟後就只有本機可以連接redis

以上幾個設定資訊就是本文所需要知道的三個設定資訊

了解docker run指令參數資訊

docker run指令就是要建立一個新的容器

以下是我建立容器使用的指令`docker run -itd --restart="always" --name redis -v /usr/local/docker/data:/data -v /usr/local/docker/redis.conf: /etc/redis.conf --net mynetwork -p 6380:6379 --ip 172.10.0.2 redis:4.0 redis-server /etc/redis.conf`

  •  i : 開啟STDIN ,用於控制台交互

  • t :分配tty設備,該可以支援終端登錄,預設為false

  • d:指定容器運行於前台還是後台,預設為false

  • v:將容器掛載儲存卷,掛載到容器的某個目錄

  • - -net:容器使用自己自訂的網路

  • -p:是連接埠號碼

  • --restart:指定容器停止後的重啟策略no:容器退出時不重新啟動  on-failure:容器故障退出(返回值非零)時重新啟動always:容器退出時總是重新啟動

解決redis容器啟動redis.conf時啟動及失敗

當我們認識了redis.conf的幾個參數和docker run的幾個常用參數後,我們來進行解決這個使用redis.conf啟動時直接就失敗問題。

然後開始創建容器  有一部分夥伴會發現有一個錯誤`WARNING: IPv4 forwarding is disabled. Networking will not work.`

解決Redis容器使用redis.conf啟動失敗

先來解決這個問題

執行指令`vim  /usr/lib/sysctl.d/00-system.conf`

加入以下程式碼`net.ipv4.ip_forward=1`

重新啟動network指令`systemctl restart network`

在來執行一下就沒有問題了

解決Redis容器使用redis.conf啟動失敗

然後進入到容器就會發現我們的問題了,創建容器後直接就退出了

解決Redis容器使用redis.conf啟動失敗

這時候是不是很鬱悶,怎麼就直接退出了。這也就是為什麼在上文中,我們提出了redis.conf和docker run指令參數的一些設定資訊。

這時候我們在回顧一下redis.conf裡邊是不是有一個`daemonize no`這個參數是是否以守護程序執行,在開發過程中我們都會把這個配置開啟  配置為yes  。

然後在回顧docker run指令裡邊有一個參數 `-d`這個參數也是以守護程式執行。

這下應該就很清楚了,是redis.conf跟docker配置衝突了

開啟設定檔把守護程式修改為no

解決Redis容器使用redis.conf啟動失敗

然後刪除剛剛建立的redis容器,在此執行上邊的指令,就可以看到容器現在已經創建成功,並且處於開啟狀態

解決Redis容器使用redis.conf啟動失敗這個時候在進入容器`docker exec -it redis /bin/bash`裡邊,就可以看到我們在連接redis-cli時需要輸入密碼,這也就是在redis.conf裡邊配置的。

解決Redis容器使用redis.conf啟動失敗

以上就是喀噠解決Redis容器使用redis.conf啟動失敗的解決方案

以上是解決Redis容器使用redis.conf啟動失敗的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn