使用Docker构建redis容器

1、背景介绍

使用Docker构建redis容器_第1张图片

用传统部署搭建一套redis环境,中间会消耗太多的重复的工作,导致部署效率非常低。例如:申请虚拟机,安装操作系统,软件包依赖安装和redis应用部署,这个过程中间需要花费不少时间,同时在安装的过程中出现问题也需要花费一些时间去处理。然后传统方式部署方式可移植性相当差。要想将现有redis迁移到新主机,可不是那么容易的事情,可能最简单的方式是tar包过去,但是新主机还是需要安装redis相关的依赖包上去,还需要花些时间去调试redis,中间反反复复的重复工作太浪费时间了。

使用Docker构建redis容器_第2张图片

为了打破传统部署模式带来的效率低下问题,我们采用docker容器部署模式,将重复的工作精简化,也为了方便运维工程师更加快速搭建一套redis环境,redis容器化后能够解决安装过程中出现的重复性繁琐的工作。最终以镜像的存储在镜像仓库中。只要有需求用到redis服务,可以在任何安装有docker软件的主机上面运行redis容器,即可达到需求。Docker容器化后的镜像即可实现即开即用的效果。

2、镜像打包流程


使用Docker构建redis容器_第3张图片

Linux编译环境:准备一台能上外网的linux环境,并安装好docker运行环境。

基础镜像:在构建应用镜像前置条件,需要准备一套干净的centos基础镜像,然后在这个基础镜像上面去部署redis软件。

配置标准化:按dockerfile的命令格式来编写,将redis软件安装与redis配置步骤写入到dockerfile文件中。然后准备好运行环境需要的配置文件和对应的运行环境启动脚本,方便在构建应用镜像时将这些文件打包到镜像中。

构建应用镜像:通过编写dockerfile文件在基础操作系统镜像里面将所要运行的所依赖的软件包和redis软件部署到镜像中,最后通过docker命令将其打成一个新的完整镜像包,下次要用redis就直接下载镜像部署。

启动容器:docker命令启动容器的过程中会将redis服务启动。


在Docker中,构建一个自定义镜像共有两种方法,一是通过commit指令构建,二是通过Dockerfile文件构建。这里我们推荐第二种方法用dockerfile文件构建redis镜像。

3、Dockerfile基本框架

Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令。Docker程序将这些Dockerfile指令翻译真正的Linux命令。Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makefile。Docker程序将读取Dockerfile,根据指令生成定制的image。相比image这种黑盒子,Dockerfile这种显而易见的脚本更容易被使用者接受,它明确的表明image是怎么产生的。有了Dockerfile,当我们需要定制自己额外的需求时,只需在Dockerfile上添加或者修改指令,重新生成image即可,省去了敲命令的麻烦。

Dockerfile的内容分为四个部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令

使用Docker构建redis容器_第4张图片

4、Redis容器化过程

4.1、Linux编译环境

准备一台centos7虚拟机,并在这台主机上面安装Docker软件,这里以docker版本1.13.1为例,来介绍如何安装Docker软件步骤。

使用Docker构建redis容器_第5张图片

下面代表docker软件已经安装成功

使用Docker构建redis容器_第6张图片

4.2、获取基础镜像

可以直接在Linux编译环境下载Centos7基础镜像,要求编译环境是要能上外网连上hub.docker.com外网镜像仓库来下载镜像,下面输入docker search centos可以看到外网docker镜像仓库中有很多centos镜像。可以通过docker pull openshift/base-centos7命令来下载centos基础镜像。

使用Docker构建redis容器_第7张图片

用docker pull已经将镜像下载到本地linux主机上面,接下来镜检查openshift/base-centos7镜像完整性,只要docker run命令来启动这个镜像,我们看到这个容器已经正常启起来。验证表明这个镜像是正常的。

使用Docker构建redis容器_第8张图片

下面是docker日常用到的一些简单命令:

使用Docker构建redis容器_第9张图片

4.3、创建dockerfile构建redis环境

1、编写redis打包镜像的dockerfile步骤

2、dockerfile编写

使用Docker构建redis容器_第10张图片
使用Docker构建redis容器_第11张图片

4.4、构建redis镜像

通过docker build执行创建,-t参数指定镜像名称,来构建redis镜像

docker build -t redis:v3.2.3 .

执行中会有类似输出: 

使用Docker构建redis容器_第12张图片

执行完毕后,输入docker images可以查看当前本机的镜像,如下图,可以看到新增的镜像

4.5、启动redis镜像

Redis是有状态数据,我们将redis的数据文件存储到本地宿主机,只需要在启动redis容器的时候将本地目录以卷的方式挂载到容器中。在本地宿主机创建一个redis存储目录 mkdir –p /home/redisdump 然后启动redis容器

docker run -itd --name redis

-v /home/redisdump:/usr/local/redis/dumpdb \

-p

6379:6379 redis:v3.2.3

我们看到容器已经正常启动,并能查看到它正在运行的进行信息。

5、验证redis容器

启动redis容器的时候已将redis容器的6379端口映射到外面的宿主机6379端口,说明我们能够通过宿主机地址加上6379就能够访问redis容器里面的数据。

现在我们来测试一下

使用Docker构建redis容器_第13张图片

现在宿主机上模拟插入一条数据,然后返回到容器查看数据是否存在

使用Docker构建redis容器_第14张图片

进入容器我们查看数据是有的,说明我们的镜像是成功的。

使用Docker构建redis容器_第15张图片

欢迎大家关注我的微信公众号,里面有很多相关的技术干货,也能随时联系到我。谢谢!

使用Docker构建redis容器_第16张图片

你可能感兴趣的:(使用Docker构建redis容器)