Docker 安裝Redis 無(wú)法使用配置文件設(shè)置密碼問(wèn)題及解決方法

  • A+
所屬分類(lèi):百科知識(shí)

最近開(kāi)發(fā)需要使用各種組件,如果都到開(kāi)發(fā)機(jī)上安裝,會(huì)占用電腦資源較多。所以使用docker容器來(lái)安裝這些組件。例如 redis 、mongodb、mysql、rabitmq、elasticsearch 等等。

遇到的問(wèn)題

用edis官方鏡像啟動(dòng)容器后,發(fā)現(xiàn)沒(méi)有加載配置文件。

解決方案

1.redis鏡像拉下來(lái)后,通過(guò)docker run 命令創(chuàng)建并啟動(dòng)容器。不能使用docker desktop 工具運(yùn)行容器,那個(gè)工具貌似只能設(shè)置端口及容器名字,沒(méi)找到 掛載配置文件啟動(dòng)redis的設(shè)置。

2.通過(guò)docker desktop 或者 docker 命令? docker pull redis:latest 最新的redis 鏡像。

3. 通過(guò) 下面的命令 創(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í)打開(kāi)redis 持久化配置。

這讓創(chuàng)建容器,容器會(huì)啟動(dòng)失敗。

通過(guò)docker ps 查看當(dāng)前的容器,找到剛創(chuàng)建的容器,通過(guò) docker logs 容器id? 查看容器的啟動(dòng)日志,或者通過(guò)docker desktop 工具點(diǎn)擊對(duì)應(yīng)的容器,然后點(diǎn)擊Logs選項(xiàng)卡,查看日志。

日志里會(huì)提示?/etc/redis/redis.conf? 文件不存在。

此時(shí)我們可以通過(guò) docker exec -it 【容器id】/bin/bash 命令進(jìn)入容器,容器內(nèi)也是一個(gè)liunx 系統(tǒng),可以通過(guò)liunx命令創(chuàng)建對(duì)應(yīng)的目錄和配置文件,并通過(guò)vi命令編輯文件,設(shè)置密碼。

或者通過(guò)Docker DeskTop 工具 進(jìn)入容器后點(diǎn)擊Files 就可以像在windows 下一樣,以文件夾的方式瀏覽容器內(nèi)的文件,

可以找到對(duì)應(yīng)的目錄,將本地的文件上傳上去(注意只能上傳文件夾,可以到本地建個(gè)redis 目錄,里面包含redis.conf 文件配置,然后將目錄上傳到對(duì)應(yīng)的文件夾)。見(jiàn)圖:

Docker 安裝Redis 無(wú)法使用配置文件設(shè)置密碼問(wèn)題及解決方法

配置里編輯好要設(shè)置的密碼。文件上傳到容器內(nèi)后,點(diǎn)擊右上角的restart 重啟容器,容器內(nèi)的redis就會(huì)自動(dòng)加載配置文件。里面就指定了密碼。注意配置里的bind 127.0.0.1 配置需要注釋掉,

不然外部無(wú)法連接容器內(nèi)的redis。

重啟容器后,可以通過(guò) 進(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)入容器后,通過(guò) config get requirepass 命令獲取當(dāng)前配置的賬號(hào)密碼,如果指定密碼登錄了,會(huì)返回當(dāng)前的密碼。

如果通過(guò)第一個(gè)命令直接進(jìn)入,會(huì)提提示需要驗(yàn)證密碼,此時(shí)可以通過(guò)auth 【密碼】 命令驗(yàn)證redis的密碼。

也可以重新修改密碼 config set requirepass [新密碼] 修改后保存回 配置文件? config rewrite
到這里 docker redis 通過(guò)配置啟動(dòng),修改密碼等操作已完成。

之前在網(wǎng)上找了很多資料,大部分都是通過(guò) docker run 命令 加? -v 參數(shù) 掛載 主機(jī) 目錄及配置文件,這種方式我沒(méi)成功~不知道問(wèn)題出在哪里,最后啟動(dòng)的redis 都沒(méi)有應(yīng)用上配置文件,

且查看容器內(nèi)映射的配置文件,redis.conf 它顯示的是目錄,不是文件...

如果通過(guò)Docker Desktop 工具的鏡像管理直接啟動(dòng)容器,不能指定的容器內(nèi)redis啟動(dòng)時(shí)掛載 redis.conf 配置。Environment variables 參數(shù)設(shè)置也不起作用。?docker desktop 是方便,但是需要額外設(shè)置一些參數(shù),還是需要通過(guò)

docker run 命令來(lái)創(chuàng)建和啟動(dòng)容器。

到此這篇關(guān)于Docker?安裝Redis?無(wú)法使用配置文件設(shè)置密碼問(wèn)題的文章就介紹到這了

歷史上的今天:

推薦應(yīng)用

發(fā)表評(píng)論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: