Docker中安装Redis最新版本 设置密码

1.拉取镜像

1.可以先查看下有哪些镜像:

docker search redis

2.拉取镜像 默认最新版本--不指定就最新版本

docker pull redis

3.准备conf配置文件。可以去官网下载。 Redis configuration | Redis(建议找到自己对应的版本下载。我安装时一直启动不起来,最后换了个版本文件,就可以了。不确定是不是不同版本有不同的配置导致的)

我修改的配置只有:

1)protected-mode no,保护模式,限制为本地访问,修改后解除保护模式

2)daemonize yes 默认no 为不守护进程模式,修改为yes(宿主机启动的时候设置,docker启动不设置)

3)requirepass rootroot 设置启用密码

2.启动镜像

简单的启动(没有密钥):

docker run -d -p 6379:6379 --name redis redis:latest

简单的启动(带密钥),推荐使用:

查看已经下载的镜像文件:

选择安装的Redis镜像来运行,执行以下命令如下:

docker run -itd --name redisNew -p 6379:6379 redis:latest --requirepass 'szj123456'

设置外围访问(有些版本默认本地访问)执行如下命令:

docker run -itd --name redisTest -p 6377:6377 redis:latest --requirepass 'szj123456' --bind 0.0.0.0 --daemonize NO --protected-mode no

在上面的命令中,包含以下配置信息介绍:

-i

以交互模式运行容器,通常与 -t 同时使用;

-t

为容器重新分配一个伪输入终端,通常与 -i 同时使用;

-d

后台运行容器,并返回容器ID;

-name

为容器指定一个名称(redisNew)

-p

指定端口映射,格式为:主机(宿主)端口:容器端口

redis:latest

运行已安装版本latest,也可以指定已下载的其他镜像,如:6.0-rc2-buster

--requirepass

配置密码(szj123456)

protected-mode

关闭保护模式。protected-mode 修改为no

bind 0.0.0.0

相当于注释掉配置本地的绑定bind 127.0.0.1,如何IP都可以访问

执行结果:

标准的启动:

docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name myredis -v /opt/myredis/redis.conf:/etc/redis/redis.conf -v /opt/myredis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass rootroot

说明:

-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。

--log 日志相关

--name redis 指定该容器名称,查看和进行操作都比较方便。

-v 挂载文件或目录 :前表示主机部分(必须为绝对路径),:后表示容器部分。

/opt/myredis/redis.conf:/etc/redis/redis.conf 挂载我的配置文件

/opt/myredis/data:/data 挂载redis的数据路径

-d redis 表示后台启动redis

redis-server /etc/redis/redis.conf 指定配置文件的路径。/etc/redis/redis.conf指的是容器内的文件路径,对应的宿主机的路径要根据挂载卷的路径找到。我的宿主机路径就是/opt/myredis/redis.conf

–appendonly yes 开启redis 持久化

–requirepass rootroot 设置密码为rootroot

3.查看状态

1.查看容器启动状态

docker ps -a

2.进入容器

docker exec -it 容器id redis-cli #调用客户端

3.操作redis,直接操作会提示权限验证。因为我们redis设置了密码,需要先进行校验。使用 【auth 密码】 进行验证。

set name tom

若需要远程连接访问redis,需修改conf文件。

1)注释掉本地的绑定。bind 127.0.0.1

2)关闭保护模式。protected-mode 修改为no。

至此完成redis安装及配置。conf的文件里有许多的配置选项,可以自己学习。

删除容器命令使用: docker rm pID

1、删除容器

1)首先需要停止所有的容器

docker stop $(docker ps -a -q)

2)删除所有的容器(只删除单个时把后面的变量改为container id即可)

docker rm $(docker ps -a -q)

3)重启Docker

systemctl restart docker


如果本篇文章对你有帮助的话,很高兴能够帮助上你。

当然,如果你觉得文章有什么让你觉得不合理、或者有更简单的实现方法又或者有理解不来的地方,希望你在看到之后能够在评论里指出来,我会在看到之后尽快的回复你。

<think>好的,我需要帮助用户了解如何在Docker中为Redis配置密码认证。根据提供的引用内容,我看到有几种不同的方法,需要整理出清晰的步骤。 首先,引用[1]提到在容器启动后配置密码。这包括进入容器,使用redis-cli设置密码。这可能适用于已经运行的容器,但用户可能需要重启容器后密码是否持久化的问题需要注意。 引用[2]、[3]、[4]则介绍了在启动容器时直接通过命令行参数设置密码的方法,使用--requirepass参数。这种方法看起来更直接,适合在创建容器时就确定密码,避免后续手动配置的麻烦。但用户需要确保命令的正确性,比如是否正确映射端口和容器名称。 引用[5]提到了使用配置文件的方式,通过挂载配置文件到容器中,并在启动时指定该配置文件。这种方法适合需要更多自定义配置的情况,用户可能需要编辑redis.conf文件,设置requirepass字段,并确保容器正确加载配置。 现在需要将这些方法分门别类,给出每种方法的步骤,并比较它们的优缺点。例如,启动时设置密码简单快捷,适合临时测试;而配置文件方式更适合生产环境,配置更持久和可管理。另外,用户可能关心如何为已存在的容器设置密码,这时候需要引用[1]和[4]中的步骤,进入容器内部使用redis-cli命令设置,并注意密码在容器重启后的持久性问题,可能需要保存配置或挂载数据卷。 还需要注意命令中的细节,比如在docker run命令中,--requirepass参数的位置是否正确,是否在镜像名称之后,避免被误解为docker的命令参数。例如,正确的命令应该是docker run --name redis -p 6379:6379 redis --requirepass 123456,其中--requirepass是作为redis服务器的参数传递的。 另外,引用[4]提到修改现有容器的密码,可能需要进入容器执行config set requirepass命令,并使用auth认证,这可能涉及到权限问题,比如是否需要以特权模式运行容器,或者是否配置了正确的卷来保存配置变更。 最后,需要提醒用户关于安全性的最佳实践,比如使用复杂密码、定期更换密码、结合Docker的安全配置等,如引用[5]中提到的使用--privileged和挂载配置文件的例子,确保Redis服务的安全运行。 总结步骤时,应该分点说明三种方法:启动时设置密码、通过配置文件设置、以及为已有容器设置密码。每种方法给出具体命令和注意事项,确保用户能够根据自身情况选择合适的方式。</think>在Docker中为Redis设置密码认证有以下三种常用方法,具体步骤如下: --- ### 方法1:启动容器时直接设置密码 **通过`--requirepass`参数在启动命令中配置密码** ```bash docker run -d --name redis-test -p 6379:6379 redis --requirepass yourPassword ``` - **说明**:`yourPassword`替换为自定义密码,此方法直接启动带密码Redis容器[^2][^3]。 - **验证**: ```bash docker exec -it redis-test redis-cli auth yourPassword # 认证后执行操作 ``` --- ### 方法2:通过配置文件设置密码 **挂载自定义Redis配置文件并启用密码** 1. 创建配置文件`redis.conf`,添加以下内容: ```conf requirepass yourPassword ``` 2. 启动容器时挂载配置文件: ```bash docker run -d --name redis-test -p 6379:6379 \ -v /path/to/redis.conf:/etc/redis/redis.conf \ redis redis-server /etc/redis/redis.conf ``` - **优点**:适合需要持久化配置的场景,如生产环境[^5]。 --- ### 方法3:为已运行的容器设置密码 **通过`redis-cli`动态修改密码** 1. 进入正在运行的Redis容器: ```bash docker exec -it redis-test /bin/bash ``` 2. 启动Redis客户端并设置密码: ```bash redis-cli config set requirepass yourPassword # 设置密码 auth yourPassword # 立即认证 ``` - **注意**:此方式密码在容器重启后失效,需结合持久化配置或数据卷[^1][^4]。 --- ### 安全性建议 1. 使用复杂密码(如大小写字母、数字、符号组合)。 2. 生产环境推荐**方法2**(配置文件)或**方法5**(结合数据卷和特权模式)。 3. 避免密码明文暴露在命令行历史中,可通过环境变量管理。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值