1.shell脚本
#!/bin/bashyum install -y gcc gcc-c++ make openssl openssl-develcd /home/redis-4.0.9make && make PREFIX=/usr/local/redis installmkdir -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.confsed -i '88s/protected-mode yes/protected-mode no/' /usr/local/redis/conf/redis.conf
2.Dockerfile
FROM centos:7ADD redis-4.0.9.tar.gz /homeCOPY redis_install.sh /homeRUN sh /home/redis_install.shENTRYPOINT /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
4.打包运行
# 启动容器:6380是宿主机端口,6379是容器的端口docker run -itd -p 6380:6379 mycentos:redis# 进入容器:docker exec -it 9b402baeaba7 /bin/bash# 宿主机连接redis:/usr/local/redis/bin/redis-cli -p 6380# 验证:[root@localhost home]# /usr/local/redis/bin/redis-cli -p 6380127.0.0.1:6380> set name xdclassOK127.0.0.1:6380> get name"xdclass"127.0.0.1:6380>
5.修改配置
docker中的redis是处于保护模式的,并且监听的是127.0.0.1。所以外界不能操作该redis。
# 进入容器docker exec -it 9b402baeaba7 /bin/bash# 修改配置vi /usr/local/redis/conf/redis.conf# 搜索protected-mode:/protected-mode# 修改protected-mode no# 搜索bind 127.0.0.1:/bind 127.0.0.1# 注释掉这行配置即可。bind 127.0.0.1# 退出容器exit# 重启容器docker restart 84573929a97b
6.连接测试
此时在宿主机中,你可以连接宿主机的6380,可以访问到docker机。
你也可以直接访问docker机的IP+6379访问。
# 宿主机访问/usr/local/redis/bin/redis-cil -p 6380# 查看docker机信息docker inspect 84579329a97b# 找到NetworkSettings>>IPAddress,这就是Docke机的IP# docker机IP访问/usr/local/redis/bin/redis-cil -h 172.17.0.3 -p 6379
