docker file 制作 dockerfile制作redis镜像_docker


前言

官网已提供了Redis的基础镜像,在生产环境尽量使用官网提供的基础镜像,这篇文章主要是为了综合使用一下Dockerfile相关命令,让我们理解更加深入一些

实战

前期准备

准备Redis源文件包
配置文件

cd /usr/local/docker
mkdir docker-redis
cd docker-redis

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

docker file 制作 dockerfile制作redis镜像_Dockerfile_02

编写Dockerfile

vim Dockerfile 增加下如下内容

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"]

docker file 制作 dockerfile制作redis镜像_Dockerfile_03

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

打包镜像

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

docker file 制作 dockerfile制作redis镜像_docker_04

查看镜像

docker images

docker file 制作 dockerfile制作redis镜像_docker_05

后台运行镜像

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

docker file 制作 dockerfile制作redis镜像_redis_06

查看7000端口是否可用

netstat -tulnp

docker file 制作 dockerfile制作redis镜像_docker file 制作_07

进入redis容器

docker ps 
docker exec -it f80c151f5d2f  /bin/bash

docker file 制作 dockerfile制作redis镜像_docker_08

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

总结

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

附录

实际环境中启动redis

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