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

dockerfile 有两个步骤
步骤1:用来将 redis 包丢到 docker.showjoy.net/centos 镜像,并且安装一些常用的包及修改redis的一些配置,等配置好之后进行 docker commit
步骤2:设置 redis 启动的一些命令参数


下面通过 dockerfile 创建 redis 镜像

一、准备基础镜像 docker.showjoy.net/centos


二、准备 redis 包 和 dockerfile

dockerfile 文件内容:


三、构建 redis-test 镜像

docker build -t redis-test . 这里的 . 表示dockerfile文件在当前目录


四、启动 redis-test 镜像,进入 docker container 将添加的 redis 进行安装,并且设置参数。(安装 redis 步骤略,这边需要注意的是 redis 密码和 bind 参数,注释掉表示监听所有地址)


五、在容器中安装配置完 redis 后退出,重新将现有的 redis 容器提交成一个新的镜像


六、通过 dockerfile 再次将 redis-test1 生成为 docker.showjoy.net/redis

看看 dockerfile ,FROM 已经从 docker.showjoy.net/centos 变为刚才提交的镜像,redis-test1,ADD redis 也已经去掉,变为 CMD。表示启动该容器后执行的命令:

下面构建新的镜像 docker.showjoy.net/redis


七、运行 docker.showjoy.net/redis 镜像,生成 redis 容器,并且查看日志,可以看到 docker 容器已经成功运行。

[root@docker redis]# docker run -dit --name redis -p 6379:6379 --restart=always -v /etc/localtime:/etc/localtime:ro docker.showjoy.net/redis
7f1a65c270af2360d4391a98af21783209aa913df54c2a255ef9b3645babcc68
[root@docker redis]# docker ps -a
CONTAINER ID        IMAGE                      COMMAND                   CREATED             STATUS              PORTS                    NAMES
7f1a65c270af        docker.showjoy.net/redis   "/bin/sh -c '"/usr/lo"   3 seconds ago       Up 1 seconds        0.0.0.0:6379->6379/tcp   redis
ae8e32d252bc        bca04f698ba8               "docker-registry"         18 hours ago        Up 18 hours         0.0.0.0:5000->5000/tcp   registry
[root@docker redis]# docker logs redis_._                                                  _.-``__ ''-._                                             _.-``    `.  `_.  ''-._           Redis 3.2.0 (00000000/0) 64 bit.-`` .-```.  ```/    _.,_ ''-._                                   (    '      ,       .-`  | `,    )     Running in standalone mode|`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379|    `-._   `._    /     _.-'    |     PID: 1`-._    `-._  `-./  _.-'    _.-'                                   |`-._`-._    `-.__.-'    _.-'_.-'|                                  |    `-._`-._        _.-'_.-'    |           http://redis.io        `-._    `-._`-.__.-'_.-'    _.-'                                   |`-._`-._    `-.__.-'    _.-'_.-'|                                  |    `-._`-._        _.-'_.-'    |                                  `-._    `-._`-.__.-'_.-'    _.-'                                   `-._    `-.__.-'    _.-'                                       `-._        _.-'                                           `-.__.-'                                               1:M 19 May 16:27:50.591 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
1:M 19 May 16:27:50.591 # Server started, Redis version 3.2.0
1:M 19 May 16:27:50.591 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
1:M 19 May 16:27:50.591 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
1:M 19 May 16:27:50.591 * The server is now ready to accept connections on port 6379

八、通过客户端 Redis Desktop Manager 来连接 redis 容器,如下图,连接成功

dockerfile 构建 redis 镜像相关推荐

  1. Docker 3.2.12:基于 Dockerfile 制作 Redis 镜像

    3.2.12:基于 Dockerfile 制作 Redis 镜像 准备基础镜像 使用之前制作的 centos-init:8.3.2011 作为基础镜像: 编写 Dockerfile 制作 redis- ...

  2. 通过Dockerfile构建Docker镜像

    Dockerfile是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建. Dockerfile支持Shell类的行尾添 ...

  3. Dockerfile构建nginx镜像

    Dockerfile构建nginx镜像[root@bogon ~]# mkdir /opt/docker-file [root@bogon ~]# cd /opt/docker-file/ [root ...

  4. Dockerfile构建容器镜像 - 运维笔记

    在Docker的运用中,从下载镜像,启动容器,在容器中输入命令来运行程序,这些命令都是手工一条条往里输入的,无法重复利用,而且效率很低.所以就需要一 种文件或脚本,我们把想执行的操作以命令的方式写入其 ...

  5. Docker使用Dockerfile构建简单镜像

    Docker使用Dockerfile构建简单镜像 首先确保系统已经安装docker 构建镜像 安装基础镜像 sudo docker pull ubuntu 查看镜像是否已经拉取成功 REPOSITOR ...

  6. 用Dockerfile构建MySQL镜像并实现容器启动过程中MySQL数据库系统的初始化

    前一段时间就在研究用Dockerfile构建MySQL镜像并实现容器启动过程中MySQL数据库系统的初始化,但被一些无关紧要的事儿给耽误了,经过查阅<dockerfile最佳实践>及MyS ...

  7. Dockerfile构建Springboot镜像

    Dockerfile构建Springboot镜像 文章目录 Dockerfile构建Springboot镜像 简介 实例演示 前期准备 Docker环境 Springboot项目 Dockerfile ...

  8. 【DockerFile构建自定义镜像实操出现问题解决方案Failed to download metadata for repo ‘appstream‘: IPv4 forwarding disa】

    一.知识回顾 之前的内容都帮你整理好了,在这里哟! [0.Docker相关目录文章整理,可自行查看,包含多节内容] [1.Docker详细安装部署&阿里镜像地址配置] [2.Docker架构& ...

  9. 使用Dockerfile构建Docker镜像

    目录 前言 Dockerfile的书写规则及指令使用方法 创建Dockerfile,构建运行环境 构建镜像 Dockerfile参考示例 Dockerfile最佳实践 1. 前言 Dockfile是一 ...

最新文章

  1. PCA的数学原理(通俗易懂)
  2. GPP加密破解工具gpp-decrypt
  3. 中国大数据争夺战已进入前所未有的高度
  4. Spring Cloud是什么
  5. linux lua socket编程,CentOs 安装lua,luasocket
  6. mysql插入另一个表中数据_MySql中把一个表的数据插入到另一个表中的实现
  7. 谈判高手子贡---引导“用户”的专家
  8. TypeScript入门指南(译文)
  9. Doris之拦截规则 sql黑名单
  10. koolshare离线插件下载_还记得那个提速8倍的IDEA插件吗?VS Code版本也发布啦
  11. 用c#语言制作ktv点歌系统,KTV点歌系统的设计与实现的设计和实现(C#,C/S,Access)
  12. web前端 原生js签名板(电子签名)写字板 canvas 截图
  13. 记一次系统蓝屏处理IRQL_NOT_LESS_OR_EQUAL
  14. UDS服务中关于服务器响应行为的实现规则
  15. nginx学习笔记七(nginx HTTP框架的执行流程)
  16. Java设计模式之代理模式
  17. php服务器监控系统,91 Monitor
  18. left join和left outer join 有什么区别?这样解释通俗易懂
  19. 2021年华为云618年中钜惠,惊喜“惠”聚!
  20. 谷歌游览器打开pdf总是提示要另存为

热门文章

  1. android+饭否+开源,GitHub - mcxiaoke/fanfouapp-opensource: 饭否Android客户端开源项目
  2. 仅30行代码,实现一个搜索引擎(1.0版)
  3. #春Phone计划#51CTO沙龙广州站活动
  4. 猫猫学iOS之tableview隐藏最下边多余的cell
  5. 大伙帮我一起来看看这个数据库的题目
  6. IGARSS 2019点云分类挑战赛中遇到的传统方法
  7. PS如何使用制作图片投影效果
  8. Python 练习实例5 题目:输入三个整数x,y,z,请把这三个数由小到大输出。
  9. python 读取qq群消息_基於Python自動發送QQ群消息
  10. 认识wang域名吗?从wang域名使用情况分析投资价值