前言
应开发需求,定制封装redis的docker镜像,需要通过环境变量修改redis的密码。
redis.conf
port 6379 requirepass REDIS_PASSWD daemonize no protected-mode yes io-threads-do-reads yes
redis.conf文件配置参数说明。更多参数可参考 官方文档
参数 | 说明 |
port | redis-server的监听端口 |
requirepass | redis的连接密码 |
daemonize | 是否以后台模式启动,在docker中必须为no |
protected-mode | 是否开启保护模式 |
io-threads-do-reads | 是否开启io多线程 |
docker-entrypoint.sh
#!/bin/bash if [ -n "$REDIS_PASSWD" ]; then sed -i "s/REDIS_PASSWD/$REDIS_PASSWD/g" /etc/redis.conf fi /usr/local/bin/redis-server /etc/redis.conf
Dockerfile
FROM redis:7.0.8 LABEL version="7.0.8.1" LABEL description="add redis password" ADD docker-entrypoint.sh / ADD redis.conf /etc/ ENV REDIS_PASSWD="123456" CMD ["/docker-entrypoint.sh"]
构建
docker build -t redis:7.0.8.1 .
运行示例
version: "3" services: redis: image: redis:7.0.8.1 container_name: redis ports: - 6379:6379 environment: - REDIS_PASSWD="654321"
使用docker-compose up -d
命令创建容器并运行,用客户端带上密码访问测试。