Docker入门第六章

前述

     JAVAEE Hello.java--->Hello.class

               .class 是对 .java一种码集的描述

     Docker images--->DockerFile

               DockerFile 是对 images一种云码集的描述

               DockerFile是镜像的一种描述,类似于我们.class 是对 .JAVA的一种描述。

 

DockerFile

     概述:

          Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。

     构建三步骤:

          1:编写Dockerfile文件

          2:Docker bulid 构建

          3:Docker run 运行

 

为什么要用DockerFile

     因为:

          1:处于可移植和分享的考虑,用 -v 主机目录:容器目录 这种方法不能够直接在DockerFile中实现。

          2:由于宿主机目录是依赖于特定的宿主机,并不能够保证在所有的宿主机上都存在这样的特定目录。

 

数据卷容器

     概述:

          命名的容器挂载数据卷,其它容器通过这个(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器。

          也就是说数据卷当作一个移动盘,而这个移动盘叫做数据卷容器。

     特点:

          容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止。

     容器之间实现数据共享

          关键字:--volumes-from 被指向的镜像名

 

DockerFile构建过程解析

     Dockerfile内容基础知识:

          1:每条保留字指令都必须为大写且后面要跟随至少一个参数

                    也就是指令后面必须有内容,否则会报类似Java中空指针异常,报出Docker语法格式错误

          2:指令按照从上至下顺序执行

          3:#表示注释

          4:每条指令都会创建一个新的镜像层,并对镜像进行提交。

 

     Docker执行Dockerfile的流程:

          1:Docker从基础镜像中运行一个容器

          2:执行一条指令并对容器作出修改

          3:执行类似 Docker commit的操作提交一个新的镜像层

          4:Docker再基于刚提交的镜像运行一个新容器

          5:执行 Dockerfile 中下一个指令,直到所有指令都执行完毕

 

小结:

     从应用软件的角度来看,Dockerfile,Docker镜像与Docker容器分别代表软件的三个不同阶段。

          1:Dockerfile 是软件的原材料

          2:Docker 镜像是软件的交付品

          3:Docker 容器则可以认为是软件的运行态。

 

     Docker是面向开发,Docker 镜像成为了交付的标准,Docker容器则涉及到部署与运维,三者缺一不可,合力充当Docker体系的基石。

 

          1:Dockerfile,需要定义一个Dockerfile,Dockerfile 定义了进程需要的一切东西。

               Dockerfile涉及的内容包含执行代码/文件和环境变量 依赖包 运行时环境 动态链接库 操作系统的发行版,以及服务进程和内核进程(当应用进程需要和系统服务和内核进程打交道,这时需要考虑如何设计 namespace的权限控制 )等等。

          2:Docker 镜像,在 Dockerfile定义一个文件之后,Docker bulid 时会产生一个Docker 镜像,当运行 Docker 镜像时,会真正开始提供服务。

          3:Docker 容器,容器是直接提供服务的。

 

 

DockerFile体系结构(保留字指令)

     FROM

          ---基础镜像,当前新镜像是基于哪个镜像的

 

     MAINTAINER

          ---镜像维护者的姓名和邮箱地址

 

     RUN

          ---容器构建时需要运行的命令,也就是在构建中需要做的一些额外的命令。

 

     EXPOSE

          ---当前容器对外暴露出的端口

 

     WORKDIR

          ---指定在创建容器后,终端默认登陆的进来工作目录,一个落脚点。

          ---若没有指定,则落到根目录。

 

ENV

          ---用来在构建镜像过程中设置环境变量。

 

     ADD

          ---将宿主机目录下的文件拷贝进镜像

          ---ADD命令会自动处理URL和解压 tar压缩包

 

     COPY

          ---类似 ADD,拷贝文件和目录到镜像中。

          ---将从构建上下文目录中<源路径>的文件 /目录复制到新的一层镜像内的<目标路径>位置

          ---语法格式:

                    语法格式1:COPY 源路径 目标路径

                    语法格式2:COPY[ "源路径","目标路径"]

 

     VOLUME

          ---容器数据卷,用于数据保存和持久化工作。

          ---VOLUME["容器已存在的文件路径1","容器已存在的文件路径2","容器已存在的文件路径3"]

          ---当某个镜像内使用了 VOLUME指令,则在运行立刻在这个容器建立两个容器卷

          注意:

               只要宿主机和容器之间的挂载成功,两者之间的数据即同步。

               容器停止退出后,主机修改后的数据依然会同步到容器中。

 

 

 

     CMD

          ---指定一个容器启动时要运行的命令

          ---Dockerfile 中可以有多个 CMD指令,但只有最后一个生效,CMD 会被 Docker run 之后的参数替代。

          ---语法格式:

               shell 格式:CMD <命令>

               exec 格式:CMD [ "可执行文件","参数1","参数2".... ]

               参数列表格式:CMD [ "参数1","参数2"....]

               参数列表格式,需要在 指定了 ENTRYPOINT 指令后,用CMD 指定具体的参数。

 

     ENTRYPOINT

          ---指定一个容器启动时要运行的命令

          ---ENTRYPOINT 的目的和 CMD 一样,都是在指定容器启动程序及参数。

          ---CMD 会被 Docker run之后的参数替换。而ENTRYPOINT 则为 追加方式

          ---docker run 之后的参数会被当作参数传递给 NETRYPOINT ,之后形成新的命令组合

 

     ONBUILD

          ---当构建一个被继承的 Dockerfile 时运行命令,父镜像在被子继承后父镜像的 onbild 被触发。

          ---也就是说,父镜像打算如果有人继承自它之后做某事情,则可以用这个。也就是一个被继承的触发器。

跳转门:

Docker入门第二章:https://blog.csdn.net/weixin_41123719/article/details/84729067

Docker入门第二章:https://blog.csdn.net/weixin_41123719/article/details/84729206

Docker入门第三章:https://blog.csdn.net/weixin_41123719/article/details/84726840

Docker入门第四章:https://blog.csdn.net/weixin_41123719/article/details/84726869

Docker入门第五章:https://blog.csdn.net/weixin_41123719/article/details/84726953

Docker入门第六章:https://blog.csdn.net/weixin_41123719/article/details/84727051

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值