一、本地搭建redis环境
1、编写shell脚本redis_install.sh
#!/bin/bash
yum install -y gcc gcc-c++ make openssl openssl-devel
cd /usr/local/redis-4.0.9
make && make PREFIX=/usr/local/redis install
mkdir -p /usr/local/redis/conf/
cp /usr/local/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
(注意:
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
这两行的意思是修改/usr/local/redis/conf/redis.conf 文件,为了宿主机可以监听容器的端口
)
2、编译安装shell脚本redis_install.sh
sh /home/redis_install.sh
3、启动redis服务
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
4、连接redis
/usr/local/redis/bin/redis-cli
二、Dockerfifile构建redis镜像
- 编写redis编译安装shell脚本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
(注意:
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
这两行的意思是修改/usr/local/redis/conf/redis.conf 文件,为了宿主机可以监听容器的端口
)
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
进入容器:docker exec -it 9b402baeaba7 /bin/bash
容器连接redis: /usr/local/redis/bin/redis-cli
启动容器(宿主机连接容器的redis):docker run -itd -p 6380:6379 mycentos:redis #6380是宿主机端口,6379是容器的端口
宿主机连接redis:
【方法一:】
/usr/local/redis/bin/redis-cli -p 6380
验证:[root@localhost home]# /usr/local/redis/bin/redis-cli -p 6380
127.0.0.1:6380> set name xdclass
OK
127.0.0.1:6380> get name
"xdclass"
127.0.0.1:6380>
【 方法二:】
找到容器ip地址:docker inspect 9b402baeaba7
连接redis:/usr/local/redis/bin/redis-cli -h 172.17.0.2 -p 6379