前言
官网已提供了Redis的基础镜像,在生产环境尽量使用官网提供的基础镜像,这篇文章主要是为了综合使用一下Dockerfile相关命令,让我们理解更加深入一些
实战
前期准备
准备Redis源文件包
配置文件
cd /usr/local/docker
mkdir docker-redis
cd docker-redis
将我们使用到的源文件上传到当前目录
编写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"]
Dockerfile解读
- 设置基准镜像centos
- 增加RUN命令,构建时运行指令
yum install -y gcc gcc-c net-tools make
- 安装 gcc gcc-c 两个组件对redis源代码进行编译
- net-tools网络工具的安装包
- make安装程序的必备组件
- 切换容器的目录到
/usr/local
- 解压
redis-4.0.14.tar.gz
到容器目录/usr/local
- 进入解压完的源代码目录
- 对源代码目录使用gcc编译并进行安装
- 切换工作目录到
/usr/local.redis-4.0.14
- 将
redis-7000.conf
到当前的工作目录 - 暴露容器内部的
7000
端口对宿主机 - 运行命令
redis-server redis-7000.conf
启动 Redis
打包镜像
docker build -t albk.tech/docker-redis .
查看镜像
docker images
后台运行镜像
docker run -p 7000:7000 albk.tech/docker-redis
查看7000端口是否可用
netstat -tulnp
进入redis容器
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即可