4. docker镜像、Dockerfile

docker镜像、Dockerfile

  • 一、docker镜像
    • 1、镜像介绍
    • 2、镜像核心技术
  • 二、Dockerfile定制镜像
    • 1、Dockerfile使用流程
      • 1.1 编写Dockerfile
      • 1.2、构建镜像
      • 1.3 创建容器测试镜像定制操作
    • 2、Dockerfile常用指令

一、docker镜像

1、镜像介绍

  • 分层的文件系统
    优势:节省空间、速度快、重用

  • 只读
    创建容器时,会在镜像上面添加一个可写层

在这里插入图片描述

2、镜像核心技术

  • COW copy on write 写时复制
  • Union fs 联合文件系统
    overlay2
    device mapper
[root@martin-host ~]# docker info  
Client: Docker Engine - CommunityVersion:    26.1.4Context:    defaultDebug Mode: falsePlugins:buildx: Docker Buildx (Docker Inc.)Version:  v0.14.1Path:     /usr/libexec/docker/cli-plugins/docker-buildxcompose: Docker Compose (Docker Inc.)Version:  v2.27.1Path:     /usr/libexec/docker/cli-plugins/docker-composeServer:Containers: 1Running: 0Paused: 0Stopped: 1Images: 4Server Version: 26.1.4Storage Driver: overlay2

二、Dockerfile定制镜像

1、Dockerfile使用流程

1.1 编写Dockerfile

[root@martin-host testDockerfile]# ls
CentOS-Base.repo  Dockerfile
[root@martin-host testDockerfile]# cat Dockerfile 
FROM centos:7COPY  CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repoRUN yum install -y net-tools

1.2、构建镜像

[root@martin-host testDockerfile]# docker build -t centos:v1 ./ 

1.3 创建容器测试镜像定制操作

[root@martin-host testDockerfile]# docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
centos       v1        3e88e2fdb6df   56 seconds ago   461MB
redis        latest    7614ae9453d1   2 years ago      113MB
centos       7         eeb6ee3f44bd   2 years ago      204MB
nginx        1.18      c2c45d506085   3 years ago      133MB[root@martin-host testDockerfile]# docker run -tid --name=test1 centos:v1 
949b757d2b35b4d115a88f69cc8f1d704b6e6fcd34a64d4ecbfc28422e7530aa[root@martin-host testDockerfile]# docker exec -ti test1 bash
[root@949b757d2b35 /]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1472inet 10.88.7.2  netmask 255.255.255.0  broadcast 10.88.7.255ether 02:42:0a:58:07:02  txqueuelen 0  (Ethernet)RX packets 8  bytes 656 (656.0 B)

2、Dockerfile常用指令

  • FROM
    指定基础镜像;
    镜像不存在,构建镜像时自动下载镜像
    建议尽量选择小容量的镜像 / debian/ ubuntu
FROM 镜像名称 
  • RUN
    指定定制命令
RUN 命令 && 命令 && 命令
  • CMD
    定义容器创建时,自动执行的命令
    注意事项:
    1、前台启动服务的指令
    2、创建容器时,不要自己指定命令,会覆盖CMD
    3、一个Dockerfile中只能有一条CMD指令
CMD httpd -D FOREGROUND
CMD ["httpd", "-D", "FOREGROUND"]	// 推荐
  • ENTRYPOINT
    定义容器创建时,自动执行的命令
    不会被覆盖
ENTRYPOINT ["httpd", "-D", "FOREGROUND"]
  • COPY
    复制文件
    注意:只能复制本地文件
COPY 源文件 目的文件 
  • ADD
    复制文件
    注意:
    1、支持本地文件、URL、压缩包会自动解压
ADD 源文件 目的文件 
ADD file01 /tmp/file01
ADD http://nginx.org/download/nginx-1.27.0.tar.gz /tmp
ADD jdk-8u91-linux-x64.tar.gz /tmp
  • EXPOSE
    说明容器服务端口
    注意:
    1、-P随机发布端口时,Dockerfile中必须有EXPOSE指令
EXPOSE 端口 端口
  • VOLUME
    定义持久化存储的目录
    创建容器时不使用-v明确指定目录,会自动生成匿名卷
VOLUME 目录
  • ENV
    定义环境变量
ENV 变量名称 值 
  • WORKDIR
    定义当前目录
WORKDIR 目录
  • USER
    指定容器运行的用户
USER 用户名

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

vue3前端开发-小兔鲜项目-封装一下产品展示模块组件

vue3前端开发-小兔鲜项目-封装一下产品展示模块组件&#xff01;因为这种产品展示信息的模块组件&#xff0c;后面我还会在其他的页面内反复使用到&#xff0c;所以&#xff0c;使用模块化开发的思路&#xff0c;把它单独设计成一个组件&#xff0c;这样可以代码复用。以后在其…

一建备考,五步形成闭环学习!

一建备考从7月份到考前是大部分人焦虑的时候&#xff0c;因为基础阶段结束&#xff0c;开始成套做真题了&#xff0c;第一遍做真题很多人分数都不太理想&#xff0c;很多同学直接失去信心&#xff0c;开始emo&#xff0c;这都是只听课不做题的结果。 现在很多同学都是这种情况…

STM32智能家居电力管理系统教程

目录 引言环境准备智能家居电力管理系统基础代码实现&#xff1a;实现智能家居电力管理系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;电力管理与优化问题解决方案与优化收尾与总结 1. 引言 智能家居电…

【单片机毕业设计选题24072】-基于单片机的智能停车场管理系统

系统功能: 1.根据RFID卡卡号判断新老用户&#xff0c;老用户不计费直接放行&#xff0c;新用户放行时显示计费结果 2.显示屏显示车位剩余数量 3.检测车位有车亮红灯&#xff0c;无车亮绿灯&#xff0c;能够实现车位诱导 5.车辆出停车场时&#xff0c;能根据停车时间计算停车…

【香橙派】Orange pi AIpro开发板使用之普通照片转换为卡通

前言 最近有幸收到一份新款 OrangePi AIpro 开发板&#xff0c;之前手里也捣鼓过一些板子&#xff0c;这次尝试从零开始部署一个简单的后端服务。OrangePi AIpro 采用昇腾AI技术路线&#xff0c;具体为4核64位处理器AI处理器&#xff0c;可配16GB内存容量&#xff0c;各种复杂应…

Facebook Dating:社交平台的约会新体验

随着社交媒体的普及和技术的发展&#xff0c;传统的社交方式正在经历革新&#xff0c;尤其是在约会这个领域。Facebook作为全球领先的社交平台&#xff0c;推出了Facebook Dating&#xff0c;旨在为用户提供一个全新的约会体验。本文将探讨Facebook Dating如何重新定义社交平台…

c语言题目之打印单身狗

文章目录 一、题目二、思路三、代码实现 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、题目 二、思路 第一步 首先这里先了解两个有关于位操作符异或的知识点 &#xff0c;异或操作符的规则是相同为0&#xff0c;相异为1 。 通过上面我们可以得…

双非一本嵌入式方向怎么学?

双非一本&#xff08;非“985”和“211”工程重点建设的本科院校&#xff09;的学生在学习嵌入式方向时&#xff0c;可以通过以下步骤和策略来系统地学习和提升自己。我收集归类了一份嵌入式学习包&#xff0c;对于新手而言简直不要太棒&#xff0c;里面包括了新手各个时期的学…

哈喽GPT-4o,程序员如何通过GPT-4o保护自己的合法权益

目录 一、法律研究Prompt&#xff1a;派遣合同和劳务外包合同有什么区别&#xff1f;详细说一下在被裁员时的区别&#xff1f; 二、法律条文检索Prompt&#xff1a;检索《劳动合同法》&#xff0c;以下情况属于第几条&#xff0c;如果公司进行技能考试&#xff0c;并以技能考试…

嵌入式物联网在医疗行业中的应用——案例分析

作者主页: 知孤云出岫 目录 嵌入式物联网在医疗行业中的应用——案例分析引言1. 智能病房监控1.1 实时患者监控系统 2. 智能医疗设备管理2.1 设备使用跟踪与维护 3. 智能药物管理3.1 药物分配与跟踪 4. 智能远程医疗4.1 远程患者监控与诊断 总结 嵌入式物联网在医疗行业中的应…

Rust Result 与可恢复的错误

Result 与可恢复的错误 大部分错误并没有严重到需要程序完全停止执行。有时&#xff0c;一个函数会因为一个容易理解并做出反应的原因失败。例如&#xff0c;如果因为打开一个并不存在的文件而失败&#xff0c;此时我们可能想要创建这个文件&#xff0c;而不是终止进程。 回忆…

3112. 访问消失节点的最少时间 Medium

给你一个二维数组 edges 表示一个 n 个点的无向图&#xff0c;其中 edges[i] [ui, vi, lengthi] 表示节点 ui 和节点 vi 之间有一条需要 lengthi 单位时间通过的无向边。 同时给你一个数组 disappear &#xff0c;其中 disappear[i] 表示节点 i 从图中消失的时间点&#xff0…

华清数据结构day3 24-7-18

基于昨天代码增加增删改查功能 zy.h #ifndef ZY_H #define ZY_H #define MAX 100 //最大容量 //定义学生类型 struct Stu {char name[20];int age;double score; }; //定义班级类型 struct Class {struct Stu student[MAX]; //存放学生的容器int size; //实际…

CH552的bootload程序IAP直接对ROM-flash修改数据(未尝试)

手动写bootload程序的可能 1&#xff0c;根据ch552g的使用手册内容查看到 2&#xff0c;在下面的参考文件的IAP文件夹中看到IAP文件 参考 下面程序中并没有跳转到厂家bootload的过程&#xff0c;这是直接通过控制有关的寄存器对FLSH进行直接写入和修改&#xff0c;这样可以认…

格式工厂,将所有的ts文件,合并为mp4

1、下载格式工厂 格式工厂 官方主页 - 免费多功能的多媒体文件转换工具 2、打开软件&#xff1a;视频合并&混流项 3、添加ts文件 4、点击【确定】&#xff0c;回到首页 5、首页中&#xff0c;点击【开始】开始转&#xff1a; 6、完成以后&#xff0c;会播放音乐并且右下…

Mysql中的几种常见日志

引言 本文是对Mysql中几种常见日志及其作用的介绍 一、error log&#xff08;错误日志&#xff09; MySQL 中的 error log&#xff08;错误日志&#xff09;是一种非常重要的日志类型&#xff0c;它记录了 MySQL 服务器在启动、运行及关闭过程中遇到的所有重要事件、错误信…

从零开始读RocketMq源码(五)Message的消费流程解析

目录 前言 准备 拉取服务和重平衡服务启动 初识PullRequest 重平衡服务 对重平衡资源进行排序 MessageQueue消息队列集合来源 Consumer消费者集合数据来源 确定分配资源策略 执行分配策略 初始化ProcessQueue 初始化PullRequest 内存队列填充PullRequest 消息拉取…

【学习笔记】无人机系统(UAS)的连接、识别和跟踪(二)-定义和缩写

引言 3GPP TS 23.256 技术规范&#xff0c;主要定义了3GPP系统对无人机&#xff08;UAV&#xff09;的连接性、身份识别、跟踪及A2X&#xff08;Aircraft-to-Everything&#xff09;服务的支持。 3GPP TS 23.256 技术规范&#xff1a; 【免费】3GPPTS23.256技术报告-无人机系…

从操作系统层面认识Linux

描述进程-PCB Linux操作系统下的PCB是: task_struct https://www.cnblogs.com/tongyan2/p/5544887.htmlhttps://www.cnblogs.com/tongyan2/p/5544887.html校招必背操作系统面试题-什么是 PCB&#xff08;进程控制块&#xff09; &#xff1f;_哔哩哔哩_bilibili校招必背操作系…

notes for datawhale summer camp NPL task3

了解 Transformer 模型&#xff0c;并基于 Transformer 模型实现在机器翻译任务上的应用&#xff01; Transformer 介绍 基于循环或卷积神经网络的序列到序列建模方法是现存机器翻译任务中的经典方法。然而&#xff0c;它们在建模文本长程依赖方面都存在一定的局限性。 为了…