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. 数据库使用--MySQL: InnoDB 还是 MyISAM?
  2. SpringBoot实用小技巧之动态设置SpringBoot日志级别
  3. java axis2 jar_Java axis2.jar包详解及缺少jar包错误分析
  4. VTK:相互作用之RubberBandZoom
  5. Node js报错 npm ERR! cb() never called!
  6. [Leedcode][JAVA]第[945]题
  7. [java] 找出字符串中出现最多的字符和出现的次数
  8. 软件包管理 之 RPM 基础 《RPM 的介绍和应用》
  9. 项目管理--maven浅析《四》之私服(Nexus)
  10. Layui环境下form表单提交;jquery.form.js;lay-verify,lay-filter;
  11. 天池竞赛赛题-特征工程-天猫用户重复购买预测解析
  12. JavaSE基础 打印杨辉三角
  13. 芒果超媒的2022年报:一半明媚,一半忧伤
  14. 嵌入式Linux常用命令
  15. C语言:将邻接矩阵转换为邻接表算法
  16. dubbo源码分析25 -- 序列化与反序列化
  17. 汽车网络安全风险评估方法
  18. pythonrequests查询_PyQt5+requests实现车票查询工具
  19. Rare-Variant Association Analysis | 罕见变异的关联分析
  20. python soup歌词_python学习之爬虫(一) ——————爬取网易云歌词

热门文章

  1. Docker磁盘空间不足如何解决
  2. cannot be used as a JSX component
  3. (马蹄集)直线切平面 线段 圆切平面
  4. 使用MATLAB控制笔记本电脑的摄像头,并进行实时人脸检测和识别
  5. MySQL 安全方案设计
  6. 搭建WIKI-dokuwiki
  7. linux小红帽实验心得,小红帽的故事心得 看过之后90%的人都会写
  8. 微信小程序:从头开始(一)
  9. 爱贝云计费服务端接入注意事项
  10. 两个数字交换的三种方法