Dockerfile构建redis镜像


reids编译安装脚本redis_install.sh
#!/bin/bash
yum install -y gcc gcc-c++ make openssl openssl-devel
cd /home/redis-4.0.9
make && make prefix=/usr/local/redis install
mkdir -p /usr/local/redis/conf/
cp /home/redis-4.0.9/redis.conf /usr/local/redis/conf/
#sed -i '69s/127.0.0.1/0.0.0.0/'  /usr/local/redis/conf/redis.conf
#sed -i '88s/protected-mode yes/protected-mode no/'  /usr/local/redis/conf/redis.conf

编写Dockerfile
from centos;7
ADD redis-4.0.9.tar.gz /home
COPY redis_install.sh /home
RUN sh /home/redis_install.sh
ENTRYPOINT /usr/local/redis/bin/redis_server /usr/local/redis/conf/redis.conf

构建镜像
docker build -t mycentos:redis .
创建容器
docker run -itd mycentos:redis

测试redis
docker exec -it mycentos:redis /bin/bash


宿主机连接容器
docker run -itd -p 6380:6379 mycentos:redis
/usr/local/redis/bin/redis_server -p 6380

Error:Connect reset by peer
容器中的redis启用了保护模式。进入容器
docker exec -it mycentos:redis /bin/bash
vi /usr/local/redis/conf/redis.conf
protected-mode yes改为 no
bind 127.0.0.1注释掉
/usr/local/redis/bin/redis_server -p 6380
127.0.0.1:6389> 
通过IP连接
docker inspect mycentos:redis
IPAddress:172.17.0.3

/usr/local/redis/bin/redis-cli -h 172.17.0.3 -p 6379

test2026-06-07 10:40