【Docker】通过Dockerfile构建Redis镜像

冷不防 2021-09-02 05:31 687阅读 0赞

写在前面

最近,有小伙伴问我:他们公司想将现有产品微服务化,部署到Docker容器中,为了部署方便,希望将现有的基础服务,例如,Redis这些基础服务,打包到Docker容器中,而不直接使用Docker镜像库有已有的Redis,这就节省了他们公司再次配置基础服务的时间。问我能不能将现有的Redis打包到Docker容器中。经过我一系列的操作,满足了他们的需求。接下来,我就将如何通过Dockerfile构建Redis镜像分享给大家!

编写redis_install.sh脚本

编写redis编译安装shell脚本redis_install.sh (最后两行的意思是,第69行匹配127.0.0.1更换成0.0.0.0;第88行匹配protected-mode yes更换为protected-mode no),这里,我以redis 4.0.9为例。

  1. #!/bin/bash
  2. yum install -y gcc gcc-c++ make openssl openssl-devel
  3. cd /home/redis-4.0.9
  4. make && make PREFIX=/usr/local/redis install
  5. mkdir -p /usr/local/redis/conf/
  6. cp /home/redis-4.0.9/redis.conf /usr/local/redis/conf/
  7. sed -i '69s/127.0.0.1/0.0.0.0/' /usr/local/redis/conf/redis.conf
  8. sed -i '88s/protected-mode yes/protected-mode no/' /usr/local/redis/conf/redis.conf

编写Dockerfile

  1. FROM centos:7
  2. ADD redis-4.0.9.tar.gz /home
  3. COPY redis_install.sh /home
  4. RUN sh /home/redis_install.sh
  5. ENTRYPOINT /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf

测试Redis

  • 启动容器 docker run -itd -p 6380:6379 mycentos:redis #6380为宿主机端口,6379为容器端口
  • 进入容器 docker exec -it 镜像id /bin/bash
  • 宿主机连接redis /usr/local/redis/bin/redis-cli -p 6380
  • 验证:可以在宿主机set name xxx,然后在容器内get name 测试

好了,今天就到这儿吧,我是冰河,我们下期见!!

发表评论

表情:
评论列表 (有 0 条评论,687人围观)

还没有评论,来说两句吧...

相关阅读