Docker基础篇(六) dockerfile体系结构语法

FROM:基础镜像,当前新镜像是基于哪个镜像的
MAINTAINER :镜像维护者的姓名和邮箱地址
RUN:容器构建时需要运行的命令
EXPOSE :当前容器对外暴露出的端口号
WORKDIR:指定在创建容器后,终端默认登陆进来的工作目录。一个落脚点
ENV:用来在构建镜像过程中设置环境变量
ADD:将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包
COPY:类似ADD,拷贝文件和目录到镜像中。将从构造上下文目录中 源路径的文件/目录复制到新的一层的镜像内的目录路径。
格式1: COPY srr dest
格式2 : COPY [“源路径” ,“目标路径”]
VOLUME:容器数据卷,用于数据保存和持久化工作
CMD:指定一个容器启动时要运行的命令,dockerfile中可以有多个cmd指令,但只有最后一个生效,cmd会被docker run之后的参数替换
ENTRYPOINT : 指定一个容器启动时要运行的命令.
ONBUILD:当构建一个被继承的Dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被出发。

CMD VS ENTRYPOINT

他们目的是一样,都是在指定容器启动程序及参数

但CMD 指定的参数, 会被 dockers run 后面的 参数 覆盖

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在宿主机 创建 dockerfile 文件
vim dock01

FROM centos:7
MAINTAINER zen
RUN yum -y install vim
RUN yum -y install net-tools
ENV mypath /usr/local
WORKDIR $mypath
cmd echo "======zen==="
cmd /bin/bash

在宿主机 生成镜像

docker build -f /root/dock01 -t zen-centos:1.0 .

在这里插入图片描述
在这里插入图片描述

》》》查看镜像文件
在这里插入图片描述
》》》 生成容器实例
docker run -it zen-centos:1.0
在这里插入图片描述
在这里插入图片描述

》》》列出镜像的变更历史

在这里插入图片描述

》》自定义镜像

1、编写dockerfile
2、构建镜像
》》docker build -f dockefile文件路径 -t 自定义镜像名:TAG
3、运行 docker run -it 上面的镜像名称:TAG

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/493736.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pyspark分布式部署随机森林算法

前言 分布式算法的文章我早就想写了,但是一直比较忙,没有写,最近一个项目又用到了,就记录一下运用Spark部署机器学习分类算法-随机森林的记录过程,写了一个demo。 基于pyspark的随机森林算法预测客户 本次实验采用的…

一般情况下,硬件中使用Repeating Sequence出现波形很奇怪就是数据的周期频率和mcu运行的频率不一致导致的

一般情况下,出现波形很奇怪就是数据的周期频率和mcu运行的频率不一致导致的 把timer values 修改为0 1就好了,如果是0,0.1就不行,不会有下面的波形

线程的六种状态

New:新建状态,此时线程刚被创建,未调用线程的启动方法 start() Runnable:运行状态,已经处于可运行状态的线程,已经调用 start()方法 Blocked:阻…

cmake构建在Visual stdio 2019 和Xcode的Qt的程序

概述:用CMake可以方便地构建Qt的应用程序,前提是你已经配置好用Visual Stdio 开发的Qt的环境或者Xcode的Qt开发环境。 1、编写CMakeLists.txt cmake_minimum_required(VERSION 3.6)set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STR…

使用开源ros包实现导航功能(一)

本次程序升级过程为python转到c环境,实现真正的可编译式编程。 由于我自己记性不是很好,所以需要每天把这种最基础的事情反复过一遍,同时,由于没有老师专门督导你的训练,所以建立了博客机制,从现在开始&…

Windows系统搭建Elasticsearch引擎结合内网穿透实现远程连接查询数据

文章目录 系统环境1. Windows 安装Elasticsearch2. 本地访问Elasticsearch3. Windows 安装 Cpolar4. 创建Elasticsearch公网访问地址5. 远程访问Elasticsearch6. 设置固定二级子域名 Elasticsearch是一个基于Lucene库的分布式搜索和分析引擎,它提供了一个分布式、多…

UE5 C++ Widget练习 Button 和 ProgressBar创建血条

一. 1.C创建一个继承Widget类的子类, 命名为MyUserWidget 2.加上Button 和 UserWidget的头文件 #include "CoreMinimal.h" #include "Components/Button.h" #include "Blueprint/UserWidget.h" #include "MyUserWidget.genera…

[设计模式Java实现附plantuml源码~行为型]算法的封装与切换——策略模式

前言: 为什么之前写过Golang 版的设计模式,还在重新写Java 版? 答:因为对于我而言,当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言,更适合用于学习设计模式。 为什么类图要附上uml 因为很…

助力智能化农田作物除草,基于DETR(DEtection TRansformer)模型开发构建农田作物场景下玉米苗、杂草检测识别分析系统

在我们前面的系列博文中,关于田间作物场景下的作物、杂草检测已经有过相关的开发实践了,结合智能化的设备可以实现只能除草等操作,玉米作物场景下的杂草检测我们则少有涉及,这里本文的主要目的就是想要基于DETR模型来开发构建玉米…

SIMON 32/64加密电路的实现(System Verilog)

关于SIMON加密电路的原理,参考之前发布的博文【SIMON加密算法的原理】 1.总览与电路介绍 1.1 电路总体结构图 1.2 模式配置介绍 SIMON加密算法的分组长度、密钥长度以及必要的参数配置如下图: 本次需要实现的是SIMON 32/64,即分组长度2n3…

影像仪满足0.02㎜~4㎜的筛网检测需求

影像仪具有高精度、高效、全面数据分析和可视化展示的测量优势。通过影像测量技术,可以有效解决筛网检测中的难题,提高工作效率和工作质量,为筛网的使用和管理提供科学依据,推动筛网行业的发展。 筛网检测的难点 1、超细筛网的…

PHP+vue+mysql校园论坛bbs系统w076f-

本文尝试以B/S架构设计模式中的vue框架,php语言为基础,通过必要的编码处理、BBS论坛系统整体框架、功能服务多样化和有效性的高级经验和技术实现方法,旨在完成一个快速、高效、便捷的BBS论坛系统。本系统以用户与管理员两类人,作为…