本文實(shí)現(xiàn)功能
公司主營(yíng)業(yè)務(wù):成都網(wǎng)站制作、成都做網(wǎng)站、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)推出井陘礦免費(fèi)做網(wǎng)站回饋大家。
解決redis容器啟動(dòng)redis.conf時(shí)啟動(dòng)及失敗
簡(jiǎn)單了解redis.conf的一些配置
認(rèn)識(shí)docker run命令的參數(shù)
打開(kāi)redis.conf后會(huì)看到很多的無(wú)用信息
我們使用grep命令來(lái)簡(jiǎn)單的處理一個(gè)下,然后就可以看到redis.conf的所有配置信息,但是現(xiàn)在輸入的命令是不可以編輯的
執(zhí)行命令:cat redis.conf | grep -v "#" | grep -v "^$"
上邊的這個(gè)雖然把redis.conf的所有配置信息弄出來(lái)了,但是不能修改,我們可以把這個(gè)內(nèi)容輸出到另外一個(gè)文件里邊,這個(gè)時(shí)候就可以在redis下可以看到一個(gè)redis-test.conf的一個(gè)文件
執(zhí)行命令:cat redis.conf | grep -v "#" | grep -v "^$" ->redis-test.conf
這個(gè)時(shí)候就可以在redis-test.conf里邊修改一些配置信息
在這里我們先了解幾個(gè)配置,后邊的配置咔咔會(huì)在后續(xù)的文件依序?qū)懗?/p>
daemonize no :redis默認(rèn)是不作為守護(hù)進(jìn)程使用的,這也就是說(shuō)為什么在你不修改配置文件時(shí)直接使用redis-server /redis/redis.conf 啟動(dòng)redis會(huì)直接顯示一個(gè)服務(wù),你在這個(gè)終端就沒(méi)有辦法操作其他,只能新開(kāi)一個(gè)終端來(lái)連接redis
requirepass foobared :redis默認(rèn)是沒(méi)有密碼連接的,但是為了安全密碼還是需要設(shè)置的
bind 127.0.0.1:這個(gè)配置項(xiàng)一般是直接注釋掉的,這個(gè)配置開(kāi)啟后就只有本機(jī)可以連接redis
以上幾個(gè)配置信息就是本文所需要知道的三個(gè)配置信息
docker run命令就是創(chuàng)建一個(gè)新的容器
以下是一個(gè)我創(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 : 打開(kāi)STDIN,用于控制臺(tái)交互
t :分配tty設(shè)備,該可以支持終端登錄,默認(rèn)為false
d:指定容器運(yùn)行于前臺(tái)還是后臺(tái),默認(rèn)為false
v:給容器掛載存儲(chǔ)卷,掛載到容器的某個(gè)目錄
--net:容器使用自己自定義的網(wǎng)絡(luò)
-p:是端口號(hào)
--restart:指定容器停止后的重啟策略 no:容器退出時(shí)不重啟 on-failure:容器故障退出(返回值非零)時(shí)重啟 always:容器退出時(shí)總是重啟
當(dāng)我們認(rèn)識(shí)了redis.conf的幾個(gè)參數(shù)和docker run的幾個(gè)常用參數(shù)后,我們來(lái)進(jìn)行解決這個(gè)使用redis.conf啟動(dòng)時(shí)直接就失敗問(wèn)題。
然后開(kāi)始創(chuàng)建容器 有一部分伙伴會(huì)發(fā)現(xiàn)有一個(gè)錯(cuò)誤`WARNING: IPv4 forwarding is disabled. Networking will not work.`
先來(lái)解決這個(gè)問(wèn)題
執(zhí)行命令`vim /usr/lib/sysctl.d/00-system.conf`
添加以下代碼`net.ipv4.ip_forward=1`
重新啟動(dòng)network命令`systemctl restart network`
在來(lái)執(zhí)行一下就沒(méi)有問(wèn)題了
然后進(jìn)入到容器就會(huì)發(fā)現(xiàn)我們的問(wèn)題了,創(chuàng)建容器后直接就退出了
這個(gè)時(shí)候是不是很是郁悶,怎么就直接退出了。這也就是為什么在上文中,我們提出了redis.conf和docker run命令參數(shù)的一些配置信息。
這個(gè)時(shí)候我們?cè)诨仡櫼幌聄edis.conf里邊是不是有一個(gè)`daemonize no`這個(gè)參數(shù)是是否以守護(hù)進(jìn)程執(zhí)行,在開(kāi)發(fā)過(guò)程中我們都會(huì)把這個(gè)配置開(kāi)啟 配置為yes 。
然后在回顧一下docker run命令里邊有一個(gè)參數(shù) `-d`這個(gè)參數(shù)也是以守護(hù)進(jìn)程執(zhí)行。
這下應(yīng)該就很清楚了,是redis.conf跟docker配置沖突了
打開(kāi)配置文件把守護(hù)進(jìn)程修改為no
然后刪除剛剛創(chuàng)建的redis容器,在此執(zhí)行上邊的命令,就可以看到容器現(xiàn)在已經(jīng)創(chuàng)建成功,并且處于開(kāi)啟狀態(tài)
這個(gè)時(shí)候在進(jìn)入容器`docker exec -it redis /bin/bash`里邊,就可以看到我們?cè)谶B接redis-cli時(shí)需要輸入密碼,這也就是在redis.conf里邊配置的。
以上就是解決Redis容器使用redis.conf啟動(dòng)失敗的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!