dockerfile定制redis镜像

docker  

dockerfile简单示例

  • 使用示例
    • 1.在宿主机中新建redis服务目录(此处官方建议用空的文件夹,防止镜像臃肿): mkdir /usr/local/docker/redis
    • 2.在宿主机redis服务目录增加共享配置目录: mkdir /usr/local/docker/redis/config
    • 3.将redis的主从配置文件,全部放入宿主机redis下的共享配置目录中: /usr/local/docker/redis/config
    • 4.定制镜像,在/usr/local/docker/redis目录中执行: docker build -t redis .
    • 5.成功后,运行redis主容器: docker run -itd —name redis-master —net ownnetwork -p 6380:6379 —ip 172.10.0.2 -v /usr/local/docker/redis/config:/config redis
    • 6.运行redis从容器: docker run -itd —name redis-slave —net ownnetwork -p 6381:6379 —ip 172.10.0.3 -v /usr/local/docker/redis/config:/config redis
    • 7.进入相应的容器.启动对应配置的redis服务.如:redis-server /config/redis-master.conf &

注意,docker创建网络,安装等命令可见网址:https://blog.df5g.com/article/25

Dockerfile 文件代码

  1. # 基于centos最新版来构建 nginx
  2. FROM centos:latest
  3. # 描述镜像作者信息
  4. MAINTAINER dream
  5. # 定义临时变量,只有在指定docker build . 构建容器时有效
  6. # 定义基础工具
  7. ARG bags='epel-release curl net-tools vim wget'
  8. # 创建redis用户和用户组
  9. RUN groupadd -r redis \
  10. && useradd -r -g redis redis
  11. # 定义当前工作目录,类似 cd
  12. WORKDIR /config
  13. # 第一层,更新YUM 并安装好所有的基础工具
  14. RUN /bin/yum update -y \
  15. && yum install -y $bags \
  16. && yum install -y redis
  17. # 在指定路劲下创建一个 config 目录
  18. RUN mkdir -p /config \
  19. && chown -R redis:redis /config
  20. # 复制文件,从构建上下文目录中的[源路劲]的文件或目录赋值到新的一层镜像中的[目标路劲]
  21. COPY ./config/redis-master.conf /config
  22. # 复制文件,比COPY高级一层,可以直接 ADD <一个压缩包地址> <目标路径>,即可以直接下载压缩包并解压到目标路劲
  23. ADD ./config/redis-slave.conf /config
  24. # 定义容器运行中的匿名卷,即在运行时自动挂载为匿名卷.即共享容器中的该目录
  25. VOLUME /config
  26. # 暴露6379端口
  27. EXPOSE 6379

当所有redis都启动成功后,在宿主机的/usr/local/docker/redis/config目录中
修改对应的主从配置文件,则对应容器中的配置文件同时更改.
redis配置文件改动后,需要将redis服务重启哦!!!否则不会生效



评论 0

发表评论

Top