查看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 -d --restart="always" --name redis -v /usr/local/docker/data:/data -v /usr/local/docker/conf/:/usr/local/etc/redis/ --network redis-net -p 6380:6379 --ip 172.19.0.2 redis:6.0.8 redis-server /usr/local/etc/redis/redis.conf --appendonly yes
- i : 打開STDIN,用於控制台交互
- t :分配tty設備,該可以支持終端登錄,默認為false
- d:指定容器運行於前台還是后台,默認為false
- v:給容器掛載存儲卷,掛載到容器的某個目錄
- –net:容器使用自己自定義的網絡
- -p:是端口號
- –restart:指定容器停止后的重啟策略 no:容器退出時不重啟 on-failure:容器故障退出(返回值非零)時重啟 always:容器退出時總是重啟
問題點
當我們啟動容器后,沒有報錯,查看日志也沒有錯誤顯示,結果容器沒有運行。
回顧一下redis.conf里邊是不是有一個daemonize no
這個參數是是否以守護進程執行的。
在回顧一下docker run命令里邊有一個參數 -d
這個參數也是以守護進程執行。
這就清楚了,是redis.conf跟docker配置沖突了。
修改 redis.conf 配置文件把守護進程修改為no。
再次啟動就可以了。
文章轉載至:https://blog.csdn.net/fangkang7/article/details/106251748