docker配置redis使之能外网访问

这篇博客详细介绍了如何在Docker环境下配置Redis服务器。首先通过mkdir和touch命令创建目录及配置文件redis.conf,然后使用vim编辑配置文件,取消本地绑定,关闭保护模式,并设置访问密码。接着,通过docker run命令启动容器,将外部配置文件和数据目录挂载到容器中,并开启数据持久化。整个过程确保了Redis容器以特定权限运行,并配置了安全访问和持久化存储。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、mkdir -p docker/redis/{conf,data}
2、touch /docker/redis/conf/redis.conf
3、vim /docker/redis/conf/redis.conf

修改配置redis.conf:
1)将绑定本地端口的配置注释调:#bind 127.0.0.1 -::1
2)  将保护模式关闭,设置为no:     protected-mode no
3) 设置访问密码,requirepass后面跟的是密码,我的密码设置为root:   requirepass 123456

4、创建容器,将外在的redis配置挂载到启动的redis容器上。
docker run -d --privileged=true -p 6379:6379 -v /docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data --name redis redis redis-server /etc/redis/redis.conf --appendonly yes

参数说明:
--privileged=true:容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限

-v /docker/redis/conf/redis.conf:/etc/redis/redis.conf:映射配置文件

-v /docker/redis/data:/data:映射数据目录

redis-server /etc/redis/redis.conf:指定配置文件启动redis-server进程

--appendonly yes:开启数据持久化
 

### 如何在 Docker配置 Redis Exporter #### 安装与运行 Redis Exporter 为了在 Docker 中成功配置并运行 `redis_exporter`,可以采用如下方法: 通过指定镜像版本号来拉取特定版本的 `oliver006/redis_exporter` 镜像,并利用 `-p` 参数映射容器端口至主机端口以便外部访问。对于连接到Redis服务器,则需设置环境变量或命令行参数如 `--redis.addr` 和 `--redis.password` 来提供必要的认证信息。 ```bash docker pull oliver006/redis_exporter:v1.45.0 docker run -d \ --name redis_exporter \ -p 9121:9121 \ oliver006/redis_exporter:v1.45.0 \ --redis.addr=redis://<your_redis_host>:6379 \ --redis.password="<your_redis_password>" ``` 上述脚本展示了如何创建名为 `redis_exporter` 的Docker容器实例[^2]。请注意替换 `<your_redis_host>` 及 `<your_redis_password>` 为实际使用的Redis地址和密码。 #### 多实例部署方案 当需要在同一台机器上部署多个 `redis_exporter` 实例时,可以通过调整宿主机上的监听端口号以及给每个容器赋予不同的名称实现这一点。下面是一个例子,用于启动两个不同配置下的 exporter: ```bash # 启动第一个实例 docker run -d \ --name redis_exporter_1 \ -p 9121:9121 \ oliver006/redis_exporter:v1.45.0 \ --redis.addr=redis://<first_redis_instance>:6379 \ --redis.password="<password_for_first_instance>" # 启动第二个实例 docker run -d \ --name redis_exporter_2 \ -p 9122:9121 \ oliver006/redis_exporter:v1.45.0 \ --redis.addr=redis://<second_redis_instance>:6379 \ --redis.password="<password_for_second_instance>" ``` 这里的关键在于改变外网访问的服务端口(即 `-p` 参数),从而允许同一物理机上的多个exporters各自独立工作而不发生冲突[^1]。 #### Prometheus集成 为了让Prometheus能够抓取来自这些 exporters 的指标数据,在Prometheus配置文件(`prometheus.yml`)中的scrape_configs部分添加job条目指向各个exporter服务的位置即可完成集成操作。 ```yaml scrape_configs: - job_name: 'redis_exporter' static_configs: - targets: ['localhost:9121', 'localhost:9122'] labels: instance: 'primary' ``` 此段YAML定义了一个新的抓取任务(job),它会定期请求位于 localhost 上对应端口处暴露出来的metrics接口获取性能统计信息[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值