前期准备
准备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解读
- 设置基准镜像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
打包镜像
1
| docker build -t albk.tech/docker-redis .
|
查看镜像
后台运行镜像
1
| docker run -p 7000:7000 albk.tech/docker-redis
|
查看7000端口是否可用
进入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即可