在前面一遍随笔,配置的是mysql主从的docker-compose配置。今天我们来学习配置编排容器redis。

准备环境:

docker 18.06.1-ce

docker-compose 1.23.0-rc3

redis最新版

开始:

1、首先我们创建下docker文件的目录,并新建Dockerfile、redis-entrypoint.sh、redis.conf

如下图:

Dockerfile文件内容如下:

FROM redis:latest        #指定启动容器的镜像

MAINTAINER cc <cc@qq.com>  #署名

RUN mkdir -p /redis/log;   #在容器里运行创建目录/redis/log

WORKDIR /redis     #设置工作目录为/redis

COPY redis.conf .  #拷贝redis.conf配置文件到工作目录(这里其实就是在Dockerfile同级下的redis.conf文件拷贝到容器内当前工作目录,也就是/redis目录)
COPY redis-entrypoint.sh /usr/local/bin/ #拷贝redis.entrypoint.sh 到容器内/usr/local/bin/目录下 RUN chown redis:redis /redis/* && \ #给容器内的/redis/*设置归属用户,并设置redis.entrypoint.sh文件的可执行权限
chmod +x /usr/local/bin/redis-entrypoint.sh EXPOSE 6379 #暴露端口6379 CMD ["redis-entrypoint.sh"] #执行redis-entrypoint.sh文件

redis.conf内容如下:

#修改daemonize为yes,即默认以后台程序方式运行(还记得前面手动使用&号强制后台运行吗)。
daemonize no
#可修改默认监听端口
port $REDIS_PORT
#修改生成默认日志文件位置
logfile "/redis/log/redis.log"
#配置持久化文件存放位置
dir "/tmp"
requirepass $REDIS_PASSWORD

redis-entrypoint.sh内容如下:

#!/usr/bin/env sh

sed -i "s/\$REDIS_PORT/$REDIS_PORT/g" /redis/redis.conf   #声明参数,为了docker-compose里面可以动态配置
sed -i "s/\$REDIS_PASSWORD/$REDIS_PASSWORD/g" /redis/redis.conf #声明参数 redis-server /redis/redis.conf

到这步,我们就以及把redis的所有配置都准备好了,接下来在Dockerfile的目录,执行脚本,生成redis镜像文件

2、生成docker 镜像文件

docker build -t iqeq/redis:1.0 .   # 生成了一个iqeq/redis:1.0的镜像文件

3、编排docker-compose文件

version: '3'  #版本号

services:
redis:
container_name: redis_container  #容器名,自定义
image: iqeq/redis:1.0   #刚才生成的镜像名
environment:            #环境参数:配置刚才shell启动脚本里面声明的2个参数
- REDIS_PORT=6379
- REDIS_PASSWORD=密码
ports:                  #暴露容器内部端口6379并映射到外部也为6379
- "6379:6379"
restart: unless-stopped   #启动方式
volumes:
- $PWD/redis/data:/data     #文件绑定挂载:$PWD表示当前目录,然后这里就是当前目录下的/redis/data子目录,挂载为容器内的/data目录
- $PWD/redis/log:/redis/log

然后保存文件为docker-compose.yml

4、查看下我们整个工作的目录结构

写的不是很好,制作的时候,特别要注意的目录要相对应的配对哈。

最后:

我们在docker-compose.yml的同级目录下,执行以下脚本:

docker-compose up -d

成功启动。

手写redis的docker文件,通过docker-compose配置redis的更多相关文章

  1. IDEA中mybatis插件自动生成手写sql的xml文件

    上图: 选择这个安装,然后重启IDEA,ok.

  2. 本地测试读取redis和普通文件缓存的速度,redis慢一倍?

    重新测试了,换成了Linux服务器,php5.6,512内存.连续读取1千次不同的文件(每个文件41KB),redis也是1千个不同的key,文件缓存还是比redis快! 但是,但是,后来我换成连续读 ...

  3. 【Docker】 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二)

    系列目录: [Docker] CentOS7 安装 Docker 及其使用方法 ( 一 ) [Docker] 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二) [D ...

  4. canvas画布实现手写签名效果

    最近项目中涉及到移动端手写签名的功能需求,将实现代码记录于此,供小伙伴们参考指摘哦~ HTML代码: <!--手写区--> <div class="mSign_signMa ...

  5. 自己手写一个SpringMVC 框架

    一.了解SpringMVC运行流程及九大组件 1.SpringMVC 的运行流程   · 用户发送请求至前端控制器DispatcherServlet · DispatcherServlet收到请求调用 ...

  6. Redis 数据恢复方法,redis-port 工具将自建 redis 的 rdb文件同步到云数据库

    1. Redis 恢复的机制 如果只配置 AOF ,重启时加载 AOF 文件恢复数据: 如果同时配置了 RDB 和 AOF ,启动是只加载 AOF 文件恢复数据: 如果只配置 RDB,启动是将加载 d ...

  7. 前端进阶之认识与手写compose方法

    目录 前言:为什么要学习这个方法 compose简介 compose的实现 最容易理解的实现方式 手写javascript中reduce方法 redux中compose的实现 参考文章 最后 前言:为 ...

  8. Linux上给php配置redis扩展

    说明,在项目开发中难免会遇到redis中,那我应该如何配置redis这样的一个扩展呢,看下面流程: 一.安装Redis PHP在安装redis扩展时,难免要看一下官网下载安装流程,链接如下: http ...

  9. Window安装配置Redis

    一.下载windows版本的Redis github下载地址:https://github.com/MSOpenTech/redis/tags 二.安装启动Redis Redis 支持 32 位和 6 ...

随机推荐

  1. HDU1052Tian Ji -- The Horse Racing

    Tian Ji -- The Horse Racing Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (J ...

  2. Linux ALSA声卡驱动之一:ALSA架构简介【转】

    本文转载自:http://blog.csdn.net/droidphone/article/details/6271122 声明:本博内容均由http://blog.csdn.net/droidpho ...

  3. ARM+llinux系统移植3G拨号上网收发短信(一)【转】

    本文转载自:http://blog.csdn.net/hanmengaidudu/article/details/17099737 一.      PPP移植 各项工作具体说明 向Linux内核添加3 ...

  4. BZOJ_1229_[USACO2008 Nov]toy 玩具_三分+贪心

    BZOJ_1229_[USACO2008 Nov]toy 玩具_三分+贪心 Description 玩具 [Chen Hu, 2006] Bessie的生日快到了, 她希望用D (1 <= D ...

  5. 【POJ 1679】 The Unique MST

    [题目链接] 点击打开链接 [算法] 先求出图的最小生成树 枚举不在最小生成树上的边,若加入这条边,则形成了一个环,如果在环上且在最小生成树上的权值最大的边等于 这条边的权值,那么,显然最小生成树不唯 ...

  6. Tomcat优化和JVM分析工具

    Tomcat的常见优化和JVM常见分析工具 Tomcat的常用优化配置 (1) 内存空间: /etc/sysconfig/tomcat JAVA_OPTS="-server -Xms32g ...

  7. bzoj 1575: [Usaco2009 Jan]气象牛Baric【dp】

    完了不会dp了 设f[i][j]为以i结尾,有j个时的最优值,辅助数组g[i][j]为s选了i和j,i~j中的误差值 转移是f[j][i]=min(f[k][i-1]+g[k][j]) #includ ...

  8. ATX 学习 (三)-atxserver2-android-provider

    服务端代码 代码clone到本地,搭好相应环境(怎么搭的这里就不介绍了,很好搭的哈)一般库首先查看main.py文件,debug模式开始运行 一开始就是没接触过的tornado.ioloop,有点偏底 ...

  9. ASP.NET SQL 总结

    1.SQLSERVER服务器中,给定表 table1 中有两个字段 ID.LastUpdateDate,ID表示更新的事务号, LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句 ...

  10. MSSQLServer知识点总结:DDL(create,alter,drop,declare)-未完整

    一.开发环境 Window10 二.开发工具 SQLServer2012 三.数据库的操作 1.创建 (1)方式一:使用默认的配置信息 create database T_mydb2 (2)方式二:自 ...