一 创建Dockerfile
[root@zxmrlc docker]# mkdir redis[root@zxmrlc docker]# cd redis && touch Dockerfile
1 #version: 2019-1-28 2 FROM centos:7.5.1804 3 MAINTAINER zxMrlc 4 #前置GCC编译环境 5 RUN ["yum","-y","update"] 6 RUN ["yum","-y","install","gcc"] 7 # 应该采用类似数组的方式进行传递命令 非数组形式 会在命令前 /bin/sh -c 运行,会出现很多问题。因为sh简化版,跑脚本会出现很多莫名其妙的error ,因为是测试 就先简化写了。 8 9 # 玄学前置 ubuntu 不需要 centos 需要10 RUN yum install -y epel-release11 #redis 安装 固定版本5.0.0 为例子12 RUN yum install -y gcc13 RUN yum install -y wget14 RUN yum clean all15 RUN wget download.redis.io/releases/redis-5.0.0.tar.gz16 #也可以先下载在宿主机上然后ADD ADD的时候会自动解压17 #挂载后进行解压也是可以的18 RUN tar -zxvf redis-5.0.0.tar.gz -C /usr/local/ && rm -f redis-5.0.0.tar.gz19 RUN yum install -y make20 RUN cd /usr/local/redis-5.0.0/ && make MALLOC=libc21 ##########修改配置开启远程连接,关闭保护模式##########22 ##########不应该开启后台进程运行模式,用后台启动会导致容器退出########## 23 RUN sed -i -e 's@bind 127.0.0.1@bind 0.0.0.0@g' /usr/local/redis-5.0.0/redis.conf \24 && sed -i -e 's@protected-mode yes@protected-mode no@g' /usr/local/redis-5.0.0/redis.conf 25 #&& sed -i -e 's@daemonize no@daemonize yes@g' /usr/local/redis-5.0.0/redis.conf 26 ##########设置密码##########27 #RUN echo "requirepass test" >> /usr/local/redis-5.0.0/redis.conf28 EXPOSE 6379 29 30 ENTRYPOINT /usr/local/redis-5.0.0/src/redis-server /usr/local/redis-5.0.0/redis.conf31 #CMD []
25行的配置一定不要打开,虽然平常在本机运行时都是通过后台运行。但是在容器中单独运行后台程序,终端没有内容会直接结束容器。
二 构建镜像
[root@zxmrlc redis]# docker build -t redis:v2019.1.28.6 $PWD
简单的话写.更好。怕看不清更换成$PWD
三 运行容器
指定端口映射,前面已经设定6379自动映射,这里直接给定端口范围 即可 ,restart 应该设置为always
[root@zxmrlc redis]# docker run -d --name=redis -p6379:6379 redis:v2019.1.28.6
还是映射到主机上的6379了 查看一下
[root@zxmrlc redis]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESd072626e4b32 redis:v2019.1.28.6 "/bin/sh -c '/usr/..." 31 minutes ago Up 3 seconds 0.0.0.0:6379->6379/tcp redis
端口列0.0.0.0:6379->6379/tcp 是ok的 如果只有6379/tcp就是失败的
四 监控redis
由于版本5.0.0比较新,所以下载教新的RedisDestopManager 放个链接 官网下载要订阅,github有源码编译很麻烦。。
链接:https://pan.baidu.com/s/13mk2UuC_zIz75T9UWunvkA
提取码:7xoq五 持久化
持久化的解决方案就很简单了 在配置文件里修改开启持久化,并且将目录挂载在宿主机即可