Docker?安裝Redis?無法使用配置文件設(shè)置密碼問題及解決方法
背景
最近開發(fā)需要使用各種組件,如果都到開發(fā)機(jī)上安裝,會(huì)占用電腦資源較多。所以使用docker容器來安裝這些組件。例如 redis 、mongodb、mysql、rabitmq、elasticsearch 等等。
遇到的問題
用edis官方鏡像啟動(dòng)容器后,發(fā)現(xiàn)沒有加載配置文件。
解決方案
1.redis鏡像拉下來后,通過docker run 命令創(chuàng)建并啟動(dòng)容器。不能使用docker desktop 工具運(yùn)行容器,那個(gè)工具貌似只能設(shè)置端口及容器名字,沒找到 掛載配置文件啟動(dòng)redis的設(shè)置。
2.通過docker desktop 或者 docker 命令 docker pull redis:latest 最新的redis 鏡像。
3. 通過 下面的命令 創(chuàng)建并運(yùn)行容器
docker run -p 6379:6379 --name myredis -d redis redis-server /etc/redis/redis.conf --appendonly yes
-p 映射redis 使用6379端口
--name 指定容器名字 為 myredis
-d 指定使用的鏡像名字 ,是用redis 鏡像創(chuàng)建容器,后面緊接的參數(shù) redis-server 是容器啟動(dòng)后,執(zhí)行redis-server 命令 并掛載 etc/redis/redis.conf 文件 。
-- appendonly yes 表示啟動(dòng)redis時(shí)打開redis 持久化配置。
這讓創(chuàng)建容器,容器會(huì)啟動(dòng)失敗。
通過docker ps 查看當(dāng)前的容器,找到剛創(chuàng)建的容器,通過 docker logs 容器id 查看容器的啟動(dòng)日志,或者通過docker desktop 工具點(diǎn)擊對應(yīng)的容器,然后點(diǎn)擊Logs選項(xiàng)卡,查看日志。
日志里會(huì)提示 /etc/redis/redis.conf 文件不存在。
此時(shí)我們可以通過 docker exec -it 【容器id】/bin/bash 命令進(jìn)入容器,容器內(nèi)也是一個(gè)liunx 系統(tǒng),可以通過liunx命令創(chuàng)建對應(yīng)的目錄和配置文件,并通過vi命令編輯文件,設(shè)置密碼。
或者通過Docker DeskTop 工具 進(jìn)入容器后點(diǎn)擊Files 就可以像在windows 下一樣,以文件夾的方式瀏覽容器內(nèi)的文件,
可以找到對應(yīng)的目錄,將本地的文件上傳上去(注意只能上傳文件夾,可以到本地建個(gè)redis 目錄,里面包含redis.conf 文件配置,然后將目錄上傳到對應(yīng)的文件夾)。見圖:
配置里編輯好要設(shè)置的密碼。文件上傳到容器內(nèi)后,點(diǎn)擊右上角的restart 重啟容器,容器內(nèi)的redis就會(huì)自動(dòng)加載配置文件。里面就指定了密碼。注意配置里的bind 127.0.0.1 配置需要注釋掉,
不然外部無法連接容器內(nèi)的redis。
重啟容器后,可以通過 進(jìn)入容器內(nèi)的redis
docker exec -it [容器id] redis-cli
或者
docker exec -it [容器id] /bin/bash
redis-cli -h 127.0.0.1 -p 6379 -a 123456
進(jìn)入容器后,通過 config get requirepass 命令獲取當(dāng)前配置的賬號(hào)密碼,如果指定密碼登錄了,會(huì)返回當(dāng)前的密碼。
如果通過第一個(gè)命令直接進(jìn)入,會(huì)提提示需要驗(yàn)證密碼,此時(shí)可以通過auth 【密碼】 命令驗(yàn)證redis的密碼。
也可以重新修改密碼 config set requirepass [新密碼] 修改后保存回 配置文件 config rewrite
到這里 docker redis 通過配置啟動(dòng),修改密碼等操作已完成。
之前在網(wǎng)上找了很多資料,大部分都是通過 docker run 命令 加 -v 參數(shù) 掛載 主機(jī) 目錄及配置文件,這種方式我沒成功~不知道問題出在哪里,最后啟動(dòng)的redis 都沒有應(yīng)用上配置文件,
且查看容器內(nèi)映射的配置文件,redis.conf 它顯示的是目錄,不是文件...
如果通過Docker Desktop 工具的鏡像管理直接啟動(dòng)容器,不能指定的容器內(nèi)redis啟動(dòng)時(shí)掛載 redis.conf 配置。Environment variables 參數(shù)設(shè)置也不起作用。 docker desktop 是方便,但是需要額外設(shè)置一些參數(shù),還是需要通過
docker run 命令來創(chuàng)建和啟動(dòng)容器。
到此這篇關(guān)于Docker 安裝Redis 無法使用配置文件設(shè)置密碼問題的文章就介紹到這了,更多相關(guān)Docker 安裝Redis內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker安裝部署單機(jī)版Rocket及基礎(chǔ)講解
RocketMQ是阿里巴巴旗下一款開源的MQ框架,經(jīng)歷過雙十一考研、Java編程語言實(shí)現(xiàn),有非常好完整生態(tài)系統(tǒng),這篇文章主要介紹了用Docker部署安裝單機(jī)版Rocket及基礎(chǔ)講解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值2022-07-07在docker中部署tomcat并且部署java應(yīng)用程序的步驟詳解
本文給大家介紹如何在docker中部署tomcat及如何部署我們的應(yīng)用程序到docker容器的tomcat里,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,一起看看吧2016-10-10Docker容器上用DockerFile部署多個(gè)tomcat服務(wù)的步驟
這篇文章主要介紹了Docker容器上用DockerFile部署多個(gè)tomcat服務(wù)的步驟,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11Docker 數(shù)據(jù)卷,數(shù)據(jù)卷容器詳細(xì)介紹
這篇文章主要介紹了 Docker 數(shù)據(jù)卷,數(shù)據(jù)卷容器詳細(xì)介紹的相關(guān)資料,這里對Docker 數(shù)據(jù)卷,數(shù)據(jù)卷容器的感念及相關(guān)操作進(jìn)行了介紹,需要的朋友可以參考下2016-11-11Docker Desktop Vmmem內(nèi)存占用過高問題及完美解決方案
DockerDesktopVmmem內(nèi)存占用過高問題常見于其基于WSL運(yùn)行類似虛擬機(jī)的機(jī)制,通過編輯.wslconfig文件限制WSL資源,可有效降低內(nèi)存占用,具體操作包括創(chuàng)建.wslconfig文件,調(diào)整內(nèi)存配置,并重啟Docker Desktop,需注意內(nèi)存設(shè)置不宜過小,以免影響Docker運(yùn)行和容器穩(wěn)定性2024-09-09Docker Machine遠(yuǎn)程部署Docker的方法
本篇文章主要介紹了Docker Machine遠(yuǎn)程部署Docker的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04教你如何通過編寫dockerfile部署python項(xiàng)目
Dockerfile是一個(gè)放置在項(xiàng)目根目錄下的描述文件,可以利用 Docker 命令基于該文件構(gòu)建一個(gè)鏡像,下面這篇文章主要給大家介紹了關(guān)于如何通過編寫dockerfile部署python項(xiàng)目的相關(guān)資料,需要的朋友可以參考下2024-07-07