一、Dockerfile构建镜像

1. Dockerfile概述



  • 定义:Dockerfile是一个用于自动构建镜像的文本文件,由一条条指令组成
  • 工作原理:指令逐步执行,每个指令完成不同功能
  • 典型指令示例:
    • FROM centos:latest:基于指定镜像构建
    • LABEL maintalner lizhenliang:添加说明信息标签
    • RUN yum install gcc -y:执行安装命令
    • COPY run.sh /usr/bin:拷贝文件到镜像
    • EXPOSE 80:声明容器服务端口
    • CMD ["run.sh"]:启动应用程序
2. Dockerfile常用指令



  • 基础指令:
    • FROM:指定基础镜像,如FROM centos:7
    • LABEL:添加元数据标签
    • RUN:执行shell命令,可连接多条命令用&&,如yum install epel-release && yum install nginx -y
  • 文件操作:
    • COPY:拷贝宿主机文件到镜像
    • ADD:解压压缩包并拷贝(比COPY多解压功能)
  • 环境配置:
    • ENV:设置环境变量
    • USER:指定运行命令的用户
    • WORKDIR:设置工作目录
  • 容器配置:
    • EXPOSE:声明服务端口(实际暴露需运行时指定)
    • CMD:容器启动时默认执行的命令(多个CMD时最后一个生效)
  • 重要原则:
    • 应用程序必须以前台方式运行,不能使用后台进程
    • 参考官方镜像写法,如nginx使用CMD ["nginx", "-g", "daemon off;"]
3. 构建镜像命令



  • 基本命令:docker build -t 镜像名:标签 .
  • 关键参数:
    • -t:指定镜像名称和标签
    • -f:指定Dockerfile路径(默认使用当前目录下Dockerfile)
  • 上下文路径:
    • 末尾的点.表示构建上下文路径
    • Dockerfile中所有文件操作都基于此路径
  • 构建过程:
    • 会按步骤执行Dockerfile中的每条指令
    • 每条指令都会生成一个中间层镜像
    • 构建失败时可从上次成功步骤继续
  • 注意事项:
    • 避免在容器中使用systemd等后台服务管理工具
    • 所有应用程序应以前台方式运行(通过CMD指定)
    • 参考官方镜像的构建方式(如nginx官方镜像)
二、知识小结

知识点

核心内容

考试重点/易混淆点

难度系数

Dockerfile概述

用于自动构建镜像的文本文件,包含逐条指令

指令功能区分(如FROM、RUN、CMD)

⭐⭐

Dockerfile指令

FROM引用基础镜像、RUN执行命令、COPY复制文件、EXPOSE声明端口、CMD启动应用

CMD与ENTRYPOINT区别,RUN多命令写法(&&连接)

⭐⭐⭐

容器启动原则

必须以前台进程运行(如nginx -g 'daemon off;'),禁止使用systemd

特权模式与常规模式差异,一号进程必要性

⭐⭐⭐⭐

镜像构建命令

docker build -t <镜像名> -f <Dockerfile路径> .

上下文路径(.的含义),-y自动确认参数

⭐⭐

Nginx镜像示例

基于CentOS 7安装Nginx并配置前台启动

官方镜像参考,daemon off参数作用

⭐⭐⭐

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

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

相关文章

Git系列--3.分支管理

目录 一、理解分支 1.1图示 1.2 打印仓库下有哪些分支 1.3创建分支 1.4HEAD与切换分支 1.5合并分支 1.6流程图理解 二、删除分支 ​ 三、合并分支冲突 3.1.问题导入 3.2.解决 3.3合并图示 四、合并模式 4.1合并​编辑 4.2变基 五、bug分支 5.1背景建立 5.2解决步骤 5.2.1…

Vue.js TDD开发深度指南:工具链配置与精细化测试策略

“TDD不是测试优先的开发&#xff0c;而是设计优先的开发。” —— Robert C. Martin 引言 在Vue.js项目中实施测试驱动开发&#xff08;TDD&#xff09;是构建健壮应用的关键路径。但许多开发者在实践中常遇到&#xff1a; 工具链配置复杂导致放弃不同类型组件测试策略混淆测…

基于物联网的智能家居控制系统设计与实现

标题:基于物联网的智能家居控制系统设计与实现内容:1.摘要 随着物联网技术的飞速发展&#xff0c;智能家居逐渐成为人们关注的焦点。本文旨在设计并实现一个基于物联网的智能家居控制系统&#xff0c;以提高家居的智能化水平和用户的生活便利性。通过采用先进的传感器技术、通信…

Vue 中使用 Cesium 实现可拖拽点标记及坐标实时显示功能

在 Cesium 地图开发中&#xff0c;实现点标记的拖拽交互并实时显示坐标信息是一个常见的需求。本文将详细介绍如何在 Vue 框架中使用 Cesium 的 Primitive 方式创建点标记&#xff0c;并实现拖拽功能及坐标提示框跟随效果。先看效果图功能实现概述我们将实现的功能包括&#xf…

HTML 插件:构建网页的强大工具

HTML 插件:构建网页的强大工具 引言 HTML 插件是网页设计中不可或缺的一部分,它们为网页增添了丰富的交互性和动态效果。本文将深入探讨 HTML 插件的概念、类型、应用及其在网页开发中的重要性。 什么是 HTML 插件? HTML 插件,也称为 HTML 组件或 HTML 控件,是指嵌入到…

NeRF、3DGS、2DGS下三维重建相关方法介绍及以及在实景三维领域的最新实践

一、引言 在计算机视觉与图形学领域&#xff0c;三维重建技术正经历从传统几何建模向智能化神经表征的范式转变。近年来&#xff0c;随着深度学习算法的迭代、传感器技术的进步及计算硬件的升级&#xff0c;以神经辐射场&#xff08;NeRF&#xff09;和高斯泼溅&#xff08;2D…

rt thread studio 和 KEIL对于使用rt thread 的中间件和组件,哪个更方便

下面我从中间件/组件集成和开发体验两个角度&#xff0c;详细对比 RT-Thread Studio 和 Keil MDK 的便利性&#xff1a;1. 中间件和组件集成 RT-Thread Studio 集成RT-Thread生态&#xff1a;内置RT-Thread的包管理器&#xff08;RT-Thread Package Manager&#xff09;&#x…

Spring Boot 项目开发实战:入门应用部分原理示例讲解

前言Spring Boot 作为当前 Java 开发领域最流行的框架之一&#xff0c;以其 "约定优于配置" 的理念极大简化了企业级应用的开发流程。本文将基于《Spring Boot 项目开发教程&#xff08;慕课版&#xff09;》中的资产管理系统项目&#xff0c;深入解析 Spring Boot 的…

ByteBrain x 清华 VLDB25|时序多模态大语言模型 ChatTS

资料来源&#xff1a;火山引擎-开发者社区 近年来&#xff0c;多模态大语言模型&#xff08;MLLM&#xff09;发展迅速&#xff0c;并在图像、视频、音频等领域取得了突破性成果。然而&#xff0c;相较于这些研究较为成熟的模态&#xff0c;时间序列这一类型的数据与大模型结合…

WPF学习笔记(25)MVVM框架与项目实例

MVVM框架与项目实例一、MVVM框架1. 概述2. 核心组件与优势一、MVVM项目1.普通项目2. MVVM架构3. MVVM项目实例1. 项目准备2. LoginViewModel与Login2. MainWindowViewModel4. MVVM项目优化1. BaseViewModel2. RealyCommand3. 效果展示总结一、MVVM框架 1. 概述 官方文档&…

MySQL实操

## 基于MySQL#先启动MySQL服务#第一次登录[rootlocalhost ~]# mysql -uroot -P3306#密码登录[rootlocalhost ~]# mysql -uroot -pEnter password: Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 9Server version: 8.0.41 Source dist…

ez_rust_writeup

一道简单的[[rust逆向]] #rust逆向 #位运算 题目信息 文件名&#xff1a;ezrust.exe 题目附件&#xff1a;https://wwfj.lanzoul.com/iczMR30k5j4h 密码:bueq 题目分析 1. 初步分析 这是一道Rust编写的逆向题目。通过IDA分析可以看到&#xff0c;这是一个典型的flag验证程序。 …

【QT】-隐式转换 explicit用法

通俗易懂的解释:隐式转换 vs 显式转换 什么是隐式转换? 隐式转换就是编译器偷偷帮你做的类型转换,你甚至都没意识到它发生了。 例子: cpp 运行 double x = 5; // 隐式:int → double(5 变成 5.0) int y = x * 2.5; // 隐式:double → int(截断小数部分) 构造函数的隐…

Django核心知识点详解:JSON、AJAX、Cookie、Session与用户认证

1. JSON数据格式详解1.1 什么是JSON&#xff1f;JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;具有以下特点&#xff1a;独立于语言&#xff0c;几乎所有编程语言都支持易于人阅读和编写易于机器解析和生成基于文本&#xff…

[特殊字符] Python 实战 | 批量统计中文文档词频并导出 Excel

本文展示如何用 Python 脚本&#xff1a; 批量读取文件夹中的多篇中文文档&#xff1b; 用 jieba 分词并统计词频&#xff08;过滤停用词与单字符&#xff09;&#xff1b; 将各文档词频输出为对应 Excel 文件&#xff1b; 是文本分析、内容审查、报告编写中的实用技巧。 &…

共享打印机(详细操作+常见问题:需输入用户名密码、无法连接等)

文章目录一、设置打印机共享的准备工作二、Windows系统下打印机共享设置1. 启用主机打印机共享2. 客户端添加共享打印机三、我所遇到的问题及解决方法客户机遇到输入用户名、密码错误代码 0x0000011b一、错误代码 0x0000011b 的含义二、解决方法添加打印机没成功其他问题此次打…

在 Windows 系统上配置 [go-zero](https://go-zero.dev) 开发环境教程

&#x1f4bb; 在 Windows 系统上配置 go-zero 开发环境教程 本教程将详细介绍如何在 Windows 系统上配置 go-zero 微服务框架的开发环境&#xff0c;包括依赖安装、路径配置、常见问题等。 &#x1f9f1; 一、前置环境安装 1. 安装 Go 下载地址&#xff1a;https://go.dev/…

开源=白嫖?

国内有一个非常浓重的思想&#xff0c;开源&#xff0c;开源就是免费&#xff0c;就是白嫖&#xff0c;就是不花钱&#xff0c;白给。那么什么是开源&#xff1f;“源代码”是软件中大多数计算机用户从未见过的部分;它是计算机程序员可以操纵的代码&#xff0c;以改变一个软件(…

2048-控制台版本

2048控制台版 文章目录2048控制台版实现效果&#xff1a;在这里插入图片描述库函数使用&#xff1a;初始化变量功能函数实现&#xff1a;状态判断函数int Judge&#xff08;&#xff09;&#xff1b;数字生成函数 bool CtreateNumber&#xff08;&#xff09;打印游戏界面 void…

提取出Wallpaper Engine壁纸的mpkg类静态壁纸

github 地址 https://github.com/notscuffed/repkg先下载软件2853…26目录这样获取有的直接mp4格式&#xff0c;就不能用这方法准备好后 cmd 进入repkg目录 执行 repkg extract ./294...333/scene.pkg