docker 覆盖 entrypoint_跟我一起学docker(八)--Dockerfile

2023-11-04

1.利用Dockerfile创建镜像

什么是Dockerfile?

定义:Dockerfile是一个文本格式的配置文件,用户可以使用Dockerfile快速创建自定义镜像。

基本结构:

Dockerfile由一行行的命令语句组成。并且支持以#开头的注释行。一般Dockerfile分为四个部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时的指令。

Dockerfile示例:

#This is a Dockerfile

#Author:liming

#第一行必须指定基础镜像

FROM ubuntu

#维护者信息

MAINTAINER <394498036@qq.com>

#镜像的操作指令

RUN apt-get update

RUN apt-getinstall -y nginx

RUN echo “daemonoff:” >> /etc/nginx/nginx.conf

#容器启动时的指令

CMD /usr/sbin/nginx

操作一下:

首先创建目录testDockerfile并进入

vi Dockerfile

创建命令:

docker build –t =“”.

注意:执行此命令要和Dockerfile在同级目录,文件名称必须为Dockerfile。命令后面的”.”表示在当前目录下执行。

2.Dockerfile指令集

1 FROM

格式为 FROM 或: .

第一条指令必须为FROM指令,用于指定基础镜像。

2 MAINTAINER

格式为 MAINTAINER ,指定维护者信息。

3 RUN

格式为 RUN ,会在shell终端运行命令。

4 EXPOSE

格式为 EXPOSE [ ...],容器需要暴露的端口号。镜像启动可以通过 –P 或 -p 进行端口映射的绑定。

5 ENV

格式为 ENV 。

指定一个环境变量,可以被后续的RUN引用,并且在容器中记录该环境变量。

6 ADD

格式为 ADD 。

该命令将复制指定的到容器中的。其中可以是Dockerfile所在目录的一个相对路径;也可以是url,还可以是tar文件(自动解压)。

7 VOLUME

格式为 VOLUME [path]。

创建一个可以从本地主机或其他容器挂载点,一般用来存放需要保持的数据。

8 USER

格式为 USER 。

指定运行容器时的用户名,后续的RUN也会指定该用户。

9 WORKDIR

格式为 WORKDIR 。

指定工作空间,运行完WORKDIR后,后续执行的RUN、CMD、ENTRYPOINT都会在此目录下执行。

10 COPY

格式为 COPY 。

复制本地主机的到容器中的,目标路径不存在时,会自动创建。

当使用本地目录为源目录时,推荐使用COPY。

11 CMD

推荐格式为 CMD [“executable”,”param1”,”param2”] 。

作为ENTRYPOINT的默认参数为 CMD[”param1”,”param2”]。

指定容器的启动命令,每个Dockerfile只能有一条CMD命令,如果指定多条,只有最后一条会执行。

用户启动容器时指定运行命令,会覆盖掉Dockerfile中的CMD命令。

12 ENTRYPOINT

格式为 ENTRYPOINT [“executable”,”param1”,”param2”]。

配置容器启动后的命令,可被docker run提供的--entrypoint参数覆盖。

每个Dockerfile只能有一条ENTRYPOINT命令,如果指定多条,只有最后一条会执行。

3.容器内安装工具的方法

4.Dockerfile最佳实践

1 错误定位

每个Dockerfile的指令可以生成新的一层镜像,如果通过Dockerfile创建镜像出错,可以根据出错所在步骤的上一层启动容器,然后手工执行出错层的命令,以达到调试目的。

2 好的使用习惯

http://dockone.io/article/131

http://dockone.io/article/132

PS:感谢大家支持,我会每天继续写docker技术文章。分享给大家。感谢大家的转发,关注和收藏。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker 覆盖 entrypoint_跟我一起学docker(八)--Dockerfile 的相关文章

  • 获取使用system权限

    win7 win8 获取system权限 win7的服务 注册表 文件夹等一些东西 即便你是administrator也没法修改 真郁闷 那就用system权限吧 以下方法是让一个程序以system权限运行 而不是类似在右键修改权限获取文件
  • 【Unity Shader】纹理实践2.0:基本属性&封装和滤波模式

    关于理论知识 技术美术图形部分 纹理基础1 0 纹理管线 flashinggg的博客 CSDN博客 上篇是总结了纹理映射一整个的流程 其中2 3纹理采样中提到了需要进行两块设置 设置封装模式 Wrap Mode 介绍了封装模式都有哪些 设置
  • [NC] 仓鼠与珂朵莉-分块

    给定一个长度为n的序列 m个询问 每次给出一个区间 查找区间内x cnt x 的最大值 由于题目的限制 下一次询问的区间会受到上一次查询结果的影响 所以必须要进行强制在线处理 首先将数列分成ceil n blk 1 块 对于询问中b l 1
  • android 11.0 开机动画横屏显示

    目录 1 概述 2 开机动画横屏显示的核心代码部分 3 开机动画横屏显示的核心代码部分分析以及实现功能
  • 计算机考研复试常问问题 数据结构篇

    第一章 绪论 1 时间复杂度 时间复杂度 算法执行时所需要的计算工作量 与整个算法的执行时间和基本操作重复的次数成正比 一个语句的频度是指该语句在算法中被重复执行的次数 算法中所有语句的频度之和记为T n O T n 的数量级 数量级 数量
  • Java 多线程事务回滚 ——多线程插入数据库时事务控制

    背景 日常项目中 经常会出现一个场景 同时批量插入数据库数据 由于逻辑复杂或者其它原因 我们无法使用sql进行批量插入 串行效率低 耗时长 为了提高效率 这个时候我们首先想到多线程并发插入 但是如何控制事务呢 直接上干货 实现效果 开启多条
  • 美图秀秀自动化测试工程师笔试面试

    2014年5月5日 笔试 一 选择题 1 有n个文件 进行快速排序 辅助存储空间为 A O 1 B O N C O Nlog2N D O N 2 2 给出一个两层for循环分别循环n次和m次 问时间复杂度 A O m n 3 很多都是关于j
  • SystemUI详解

    目录 一 简介 二 SystemUI的架构 三 SystemUI的主要组件 四 SystemUI的主要功能 五 SystemUI的自定义和定制 六 SystemUI的性能优化 一 简介 SystemUI是Android操作系统的一个关键组件
  • C语言枚举类型的大小

    主流编译器如 gcc vc MinGW gcc等枚举变量均为4字节 少量编译器会根据枚举个数做优化 如只有3个枚举值时 size可能为1 enum长度不确定会带来可移植性问题 如果第三方库API接口使用enum类型 编译和调用库时一旦有关e
  • c++读取TXT文件内容

    c 读取TXT文件内容 首先添加头文件 include
  • Cron expression must consist of 6 fields

    corn 表达式为 Scheduled cron 20 2021 运行代码提示报错 Cron 表达式必须包含 6 个字段 Cron expression must consist of 6 fields found 7 in 20 2021
  • 光盘装系统和U盘装系统有什么区别?哪个好?

    光盘装系统和U盘装系统的区别 U盘 U盘安装就是利用U盘启动盘制作工具 制作U盘启动盘 之后从U盘启动WIN PE 系统 再加载下载好的系统镜像进行安装的方法 光盘 光盘安装法就是利用购买好的系统盘 或者自己制作的系统盘 利用电脑的光驱 直
  • Uni-app登录态管理(vuex)

    转载 https www cnblogs com edward life p 11181139 html 应用中 保持登录状态是常见需求 本文讲解使用uni app框架时如何保持用户登录状态 即 初次进入应用为未登录状态 gt 登录 gt
  • html提交表单 node,Nodejs之http的表单提交

    之前介绍了http模块的请求与响应的过程 也介绍了TCP协议的客户端与服务端的数据传输 http协议是TCP上层协议 这里创建了一个简单的web服务器 并对提交表单数据进行处理 根据了不起的Node js一书总结 POST方法提交表单数据
  • centso7 openssl 报错Verify return code: 20 (unable to get local issuer certificate)

    问题重现 由于centos7 默认的openssl的版本为1 1 0k 本人编译媒体服务时 需要openssl版本1 1 1以上 所有删除的之前的低版本openssl 手动编译了一个1 1 1k的版本 媒体服务正常运行 并且CA验证正常 结
  • hadoop完全分布式一键安装、启动、停止脚本

    hadoop完全分布式一键安装脚本 bin bash 配置HADOOP的安装目录 修改的地方1 脚本可以自己创建 在windows编写的代码可能运行有问题执行以下 1 gt vim redisshell sh 2 gt set ff uni
  • 1.使用SQL语句创建表

    1 创建表的语法 create table 表名 列1 数据类型 1 列2 数据类型 tablespace 表空间 SQL create table student ID NUMBER not null NAME VARCHAR2 20 表
  • 综合能力 ---- 1. 通信职业道德

    1 职业道德内涵 职业义务 职业良心 职业荣誉 职业信誉 职业尊严 职业纪律 2 记忆职业和职业道德概念 职业 人们在社会中所从事的专门业务和对社会所承担的特定职责 并以此作为重要生活来源的社会活动 职业道德 人们从事正当的社会职业 并在其
  • chrome.runtime.sendMessage 回调函数参数为undefined

    chrome runtime sendMessage 回调函数参数为undefined chrome runtime sendMessage的回调函数默认是同步的 而且超时后直接执行 返回undefined 如果要异步执行 必须在处理函数中

随机推荐

  • Vim,人类史上最好用的文本编辑器!从此以后你就是一个善良的极客!

    CSDN 的小伙伴们 大家好 我是沉默王二 写完 Shell 那篇后就想写 Vim 了 因为人类史上最好的文本编辑器就是 Vim 不赞同的请自觉持有保留意见 哈哈哈 Better Stronger Faster 用这三个单词来赞美 Vim
  • iOS(三)实现App底部TabBar的切换:二

    上一篇讲述了iOS自带的TabBar 但在我所见到的很多App源码中大多用了自己写的TabBar 惯例先上图 这只是一个最简单的TabBar 但重在原理 虽然是我懒 HomeViewController h HomeViewControll
  • day17-json和面向对象(总结)

    day17 json和面向对象 姚万里 1 json数据 1 json数据格式的作用 json和xml是两种通用的数据格式 几乎所有的高级编程语言都支持 json和xml数据的格式的存在 是为了让不同编程语言的程序可以进行有效的数据沟通 2
  • VSCode: PlatformIO主页一直显示loading解决方案

    VSCode PlatformIO主页一直显示loading解决方案 Github问题描述 Could not start PIO Home server Error timeout 205 在vscode中打开platformio点击进入
  • 海豚php上传音频方法(引用 layui的 js 与 css)

    1 html代码 div class layui upload div div div
  • 1033. 旧键盘打字(20)--Python

    之前的时候最后一个测试点一直没有通过 后来在网上搜寻了一下答案 发现自己写的逻辑实在是太混乱了 所以看了一下别人的思路 主要是 1 首先判断坏键盘中是否有 若是有的话 使用flag标记一下 2 然后可以循环的判断应该输出的字符串 边遍历边输
  • 遗传算法及Python代码实现、图解

    目录 前言 一 遗传算法 Genetic Algorithm GA 简介 二 遗传算法基本概念 二 1 目标函数 环境 二 2 一组解 最优解 种群 最适宜种群 二 3 解 编码 个体 基因型 二 4 解码 表现型 难点 二 5 交叉 变异
  • 【jdk1.8特性】之Function

    笔者日常 来吧 Function 相关声明 本文按照以下顺序进行说明并给出简单的使用示例 序号 接口 1 Function
  • 【Redis笔记】发布与订阅

    Redis发布与订阅功能由PUBLISH SUBSCRIBE PSUBSCRIBE等命令组成 SUBSCRIBE命令 客户端可以订阅一个或多个频道 从而成为这些频道的订阅者 subscriber 每当有其他客户端向被订阅的频道发送消息时 频
  • 未来十年互联网十大发展趋势

    世界已被互联网占领 互联网未来10年将如何变化与发展 1 互联网全球普及 根据国际电信联盟最近统计 全球互联网用户总数已经达到20亿人 而联合国公布的最新统计数字显示 世界人口在2011年底突破70亿大关 所以到2020年毫无疑问会有更多的
  • Ubuntu下各种压缩与解压的操作

    这篇文章主要给大家介绍了在Ubuntu系统下各种压缩与解压的操作 其中包括 tar gz bz2 bz Z tgz zip rar以及 lha等各个的解压与压缩方法 每一种都给出了示例代码 需要的朋友可以参考学习 一起来看看吧 一 tar
  • vue项目中高德地图根据城市名定位到城市中心位置,并在该位置做标记

    先看效果 首先记得引入高德地图 并且要带上 plugin AMap DistrictSearch 如下
  • 加密方式

    目录 MD5和RSA 1 MD5 a MD5简介 MD5一种不可逆的加密算法 什么意思呢 网站一般会保存用户密码 为了不让数据库管理员看到用户的密码 你输入的密码是这样的 12345 网站加密后的密码可能是这样的 E10ADC3949BA5
  • 缓存穿透,缓存雪崩的四种解决方案

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 前言 设计一个缓存系统 不得不要考虑的问题就是 缓存穿透 缓存击穿与失效时的雪崩效应 缓存穿透 缓存穿透是指查询一个一定不存在的数据 由于缓存是不命中时被动写的 并且出于容
  • [管理与领导-60]:IT基层管理者 - 扩展技能 - 3 - 通过面试招到合适的人选

    目录 前言 一 招聘 1 1 什么是招聘 1 2 招聘 VS 招募 1 3 甄选 1 4 招聘中的重要原则 1 5 招聘的本质 1 6 人才匹配的维度 1 7 人员招聘中的误区 二 面试 2 1 何为面试 2 2 为什么面试 2 3 面试的
  • PRESENT加密算法(c++实现)

    简介 PRESENT加密算法在2007 年由来自德国波鸿鲁尔大学的 Bogdanov 在 CHES 会议中发表 PRESENT加密算法为一种轻量级分组密码算法 采用了 置换网络 SPN 结构 一共迭代 31 轮 分块 组 长度为 64 比特
  • 局域网可用IP网段

    C类局域网专用网段 192 168 0 1 192 168 255 254 很多公司网吧都是用这个网段 hoho B类局域网专用网段 172 16 0 1 172 31 255 254 A类局域网专用网段 10 0 0 1 10 255 2
  • 工作3周年小记

    时间荏苒 入职那天的情景还历历在目 却不经意的成为了组里的老员工 一直渴望着静好的岁月 不曾想 过去的岁月这般忙碌 匆匆 似乎没有留下太多彩色的记忆 蓦然回首 做了很多项目 看到各种同事的来去 也经历了组里的盛衰 内心没有波澜 只是遗憾没有
  • chatgpt赋能python:Python编译成pyd文件是什么?如何提高SEO排名?

    Python编译成pyd文件是什么 如何提高SEO排名 Python是一种非常强大的编程语言 它非常适合用于开发各种不同类型的应用程序 然而 Python虽然易于学习和使用 但是由于它的解释性质 它的运行速度相对较慢 在某些情况下 这可能会
  • docker 覆盖 entrypoint_跟我一起学docker(八)--Dockerfile

    1 利用Dockerfile创建镜像 什么是Dockerfile 定义 Dockerfile是一个文本格式的配置文件 用户可以使用Dockerfile快速创建自定义镜像 基本结构 Dockerfile由一行行的命令语句组成 并且支持以 开头