Docker 构建 Redis 镜像

前期准备

准备Redis源文件包
配置文件

1
2
3
cd /usr/local/docker
mkdir docker-redis
cd docker-redis

将我们使用到的源文件上传到当前目录

此处输入图片的描述

编写Dockerfile

vim Dockerfile 增加下如下内容

1
2
3
4
5
6
7
8
9
10
FROM centos:centos7
RUN ["yum" , "install" , "-y" ,"gcc","gcc-c++","net-tools","make"]
WORKDIR /usr/local
ADD redis-4.0.14.tar.gz .
WORKDIR /usr/local/redis-4.0.14/src
RUN make && make install
WORKDIR /usr/local/redis-4.0.14
ADD redis-7000.conf .
EXPOSE 7000
CMD ["redis-server","redis-7000.conf"]

此处输入图片的描述

Dockerfile解读

  1. 设置基准镜像centos
  2. 增加RUN命令,构建时运行指令 yum install -y gcc gcc-c++ net-tools make
  • 安装 gcc gcc-c++ 两个组件对redis源代码进行编译
  • net-tools网络工具的安装包
  • make安装程序的必备组件
  1. 切换容器的目录到 /usr/local
  2. 解压redis-4.0.14.tar.gz到容器目录/usr/local
  3. 进入解压完的源代码目录
  4. 对源代码目录使用gcc编译并进行安装
  5. 切换工作目录到/usr/local/redis-4.0.14
  6. redis-7000.conf到当前的工作目录
  7. 暴露容器内部的7000端口对宿主机
  8. 运行命令 redis-server redis-7000.conf启动 Redis

打包镜像

1
docker build -t albk.tech/docker-redis .

此处输入图片的描述

查看镜像

1
docker images

此处输入图片的描述

后台运行镜像

1
docker run -p 7000:7000 albk.tech/docker-redis

此处输入图片的描述

查看7000端口是否可用

1
netstat -tulnp

此处输入图片的描述

进入redis容器

1
2
docker ps 
docker exec -it f80c151f5d2f /bin/bash

此处输入图片的描述

redis-7000.conf已按我们的脚本打到REDIS的安装目录中

总结

到这里我们已经打包好一个自己的redis镜像了, 在实际中工作没有必要这样做,官方早已提供好相关的镜像了, 本文只是对前面Dockerfile命令和docker命令的综合应用

附录

实际环境中启动redis

docker pull redis
docker run -d redis
这两行命令就已经可以创建一个redis容器,如果对版本有要求,可以指定对应版本的tag即可