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

本文實現(xiàn)功能解決redis容器啟動redis.conf時啟動及失敗簡單了解redis.conf的一些配置認(rèn)識docker run命令的參數(shù)

了解redis.conf的配置文件

打開redis.conf后會看到很多的無用信息

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

我們使用grep命令來簡單的處理一個下,然后就可以看到redis.conf的所有配置信息,但是現(xiàn)在輸入的命令是不可以編輯的

執(zhí)行命令:cat redis.conf | grep -v “#” | grep -v “^$”

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

上邊的這個雖然把redis.conf的所有配置信息弄出來了,但是不能修改,我們可以把這個內(nèi)容輸出到另外一個文件里邊,這個時候就可以在redis下可以看到一個redis-test.conf的一個文件

執(zhí)行命令:cat redis.conf | grep -v “#” | grep -v “^$” ->redis-test.conf

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

這個時候就可以在redis-test.conf里邊修改一些配置信息

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

在這里我們先了解幾個配置,后邊的配置咔咔會在后續(xù)的文件依序?qū)懗?/p>

  • ?daemonize no :redis默認(rèn)是不作為守護進程使用的,這也就是說為什么在你不修改配置文件時直接使用redis-server? /redis/redis.conf? 啟動redis會直接顯示一個服務(wù),你在這個終端就沒有辦法操作其他,只能新開一個終端來連接redis

  • ?requirepass foobared :redis默認(rèn)是沒有密碼連接的,但是為了安全密碼還是需要設(shè)置的

  • ?bind 127.0.0.1:這個配置項一般是直接注釋掉的,這個配置開啟后就只有本機可以連接redis

以上幾個配置信息就是本文所需要知道的三個配置信息

了解docker run命令參數(shù)信息

docker run命令就是創(chuàng)建一個新的容器

以下是一個我創(chuàng)建容器使用的命令`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設(shè)備,該可以支持終端登錄,默認(rèn)為false

  • d:指定容器運行于前臺還是后臺,默認(rèn)為false

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

  • –net:容器使用自己自定義的網(wǎng)絡(luò)

  • -p:是端口號

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

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

當(dāng)我們認(rèn)識了redis.conf的幾個參數(shù)和docker run的幾個常用參數(shù)后,我們來進行解決這個使用redis.conf啟動時直接就失敗問題。

然后開始創(chuàng)建容器? 有一部分伙伴會發(fā)現(xiàn)有一個錯誤`WARNING: IPv4 forwarding is disabled. Networking will not work.`

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

先來解決這個問題

執(zhí)行命令`vim? /usr/lib/sysctl.d/00-system.conf`

添加以下代碼`net.ipv4.ip_forward=1`

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

在來執(zhí)行一下就沒有問題了

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

然后進入到容器就會發(fā)現(xiàn)我們的問題了,創(chuàng)建容器后直接就退出了

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

這個時候是不是很是郁悶,怎么就直接退出了。這也就是為什么在上文中,我們提出了redis.conf和docker run命令參數(shù)的一些配置信息。

這個時候我們在回顧一下redis.conf里邊是不是有一個`daemonize no`這個參數(shù)是是否以守護進程執(zhí)行,在開發(fā)過程中我們都會把這個配置開啟? 配置為yes? 。

然后在回顧一下docker run命令里邊有一個參數(shù) `-d`這個參數(shù)也是以守護進程執(zhí)行。

這下應(yīng)該就很清楚了,是redis.conf跟docker配置沖突了

打開配置文件把守護進程修改為no

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

然后刪除剛剛創(chuàng)建的redis容器,在此執(zhí)行上邊的命令,就可以看到容器現(xiàn)在已經(jīng)創(chuàng)建成功,并且處于開啟狀態(tài)

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

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

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊6 分享