DockerFile的应用

DockerFile的应用

  • 一、介绍
    • 1 构建的三步骤
    • 2 构建的过程
  • 二、常用命令
  • 三、DockerFile案例
    • 1 创建DockerFile文件
    • 2 使用DockerFile文件构建镜像
    • 3 启动容器并验证
  • 四 DockerFile添加数据卷

一、介绍

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

1 构建的三步骤

  • 编写DockerFile文件
  • docker build 构建镜像
  • docker run 启动镜像

2 构建的过程

  • 每条保留字指令都必须为大写字母 且 后面要跟知晓一个参数
  • 指令是从上到下 顺序执行的
  • 井号(#)表示注释
  • 每条指令都会创建一个新的镜像层,并对镜像提交(构建第一层提交,在覆盖第二层再提交,在覆盖第三层再提交…直至全部构建完毕)

二、常用命令

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

三、DockerFile案例

我们从官网pull下来的centos是没有vim命令的,我们可以自定义一个DockerFile,增加上想要的环境即可。

1 创建DockerFile文件

FROM centosMAINTAINER mzw<ruoshui_t@163.com>ENV MYPATF /usr/localWORKDIR $MYPATHRUN yum -y install vimEXPOSE 80CMD echo $MYPATH
CMD echo "success ----------- 888"
CMD /bin/bash

2 使用DockerFile文件构建镜像

docker build -f DockerFile文件路径 - t 镜像名称:tag .

在这里插入图片描述

3 启动容器并验证

在这里插入图片描述
此时已经有了vim命令

四 DockerFile添加数据卷

DockerFile添加数据卷只需要添加内容【VOLUME: 容器数据卷,用于数据保存和持久化工作】
简单案例

  • 创建dockerFile文件

    vim dockerFile02
    
  • 编写代码

    FROM centosVOLUME ["dataVolume01", "dataVolume02"]CMD /bin/bash
    
  • 构建镜像

    docker build -f dockerFile02 -t mzw/centos:1.2 .
    
  • 运行容器

    docker run -it mzw/centos:1.2
    

查看目录结构,发现有刚刚设置的两个数据卷
在这里插入图片描述

  • 查看数据卷与宿主机的映射
    docker inspect 容器ID
    

在这里插入图片描述

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

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

相关文章

互联网加竞赛 多目标跟踪算法 实时检测 - opencv 深度学习 机器视觉

文章目录 0 前言2 先上成果3 多目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习多目标跟踪 …

51_蓝桥杯_led流水灯

一 原理图分析 二 三八译码器工作原理 三八译码器&#xff1a;3个输入控制8路互斥的低电平有效输出。 C B A 输出 0 0 0 Y0 0 0 1 Y1 0 1 0 Y2 0 1 1 Y3 1 0 0 Y4 1 0 1 Y5 1 1 0 Y6 1 1 1 Y7 三 锁存器工作原理 锁存器&#xff1a;当使…

Qt之条件变量QWaitCondition详解(从使用到原理分析全)

QWaitCondition内部实现结构图&#xff1a; 相关系列文章 C之Pimpl惯用法 目录 1.简介 2.示例 2.1.全局配置 2.2.生产者Producer 2.3.消费者Consumer 2.4.测试例子 3.原理分析 3.1.源码介绍 3.2.辅助函数CreateEvent 3.3.辅助函数WaitForSingleObject 3.4.QWaitCo…

Unity中,C#的事件与委托区别和经典实例

文章目录 实例1&#xff1a;委托&#xff08;Delegate&#xff09;的基本用法实例2&#xff1a;事件&#xff08;Event&#xff09;的声明与订阅实例3&#xff1a;Unity引擎中的委托实例 - UI Button.onClick实例4&#xff1a;事件&#xff08;Event&#xff09;的安全性实例5&…

在字节划水的7年,太真实了。。

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号【互联网杂货铺】&#xff0c;回复 1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 测试这条路是坎坷的&#xff0c;我自己深有体会。 我们的起点低…

【hyperledger-fabric】知识点总结

关键概念 什么是智能合约&#xff1f;用可执行的代码定义了不同组织之间的规则&#xff0c;应用程序通过调用智能合约来生成记录到账本上的交易。 什么是peer节点&#xff1f;peer节点就是客户端&#xff08;应用&#xff09;用来连接到到该节点&#xff0c;进行查询和更新操…

C#使用迭代器实现文字的动态效果

目录 一、涉及到的知识点 1.GDI 2.Thread类 3.使用IEnumerable()迭代器 二、实例 1.源码 2.生成效果&#xff1a; 一、涉及到的知识点 1.GDI GDI主要用于在窗体上绘制各种图形图像。 GDI的核心是Graphics类&#xff0c;该类表示GDI绘图表面&#xff0c;它提供将对象绘制…

My desktop didn‘t come with the Bluetooth.

You didnt turn on the Bluetooth on PC and phone.Turn on it to control your phone. My desktop didnt come with the Bluetooth. 电脑控制手机的时候&#xff0c;电脑蓝牙没打开 电脑蓝牙打开步骤 电脑蓝牙的小图标打开了 手机上可以看到计算机了【Thinkpad-T440p-zwf】 无…

【力扣白嫖日记】1795.每个产品在不同商店的价格

前言 练习sql语句&#xff0c;所有题目来自于力扣&#xff08;https://leetcode.cn/problemset/database/&#xff09;的免费数据库练习题。 今日题目&#xff1a; 1795.每个产品在不同商店的价格 表&#xff1a;Products 列名类型product_idintstore1intstore2intstore3in…

Query Rewrite —— 基于大模型的query扩展改写,召回提升3%-15%

微软的论文 Query2doc: Query Expansion with Large Language Models https://arxiv.org/pdf/2303.07678.pdf 一、生成假设性答案 通过LLM生成query对应的答案。然后将把答案和原始query拼接成新的query&#xff0c;用于检索。例如&#xff1a; 二、如何把答案和原始query进…

美网络安全威胁能力分析报告

获取方式&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/13RypcyEiNyxe9e0_Gt3ZmQ?pwdbjey 提取码&#xff1a;bjey

使用LlamaIndex和ChatGPT的无代码检索增强生成(RAG)

自从ChatGPT和类似的LLM推出以来&#xff0c;出现了大量的RAG工具和库。人们需要了解如何使用LlamaIndex和ChatGPT的无代码RAG。 检索增强生成(RAG)是使用大型语言模型(LLM)的关键工具。RAG使LLM能够将外部文档合并到它们的响应中&#xff0c;从而更紧密地与用户需求保持一致。…