当前位置: 首页 > article >正文

Docker——镜像

Docker 镜像是容器化技术的核心,它是一个轻量级、独立且可执行的软件包,包含了运行应用程序所需的一切:代码、运行时环境、系统工具、库和配置。可以把镜像想象成一个只读的"模具"或"安装包",而容器则是这个模具运行时的实体实例1、相关概念分层存储:Docker镜像不是一个大文件,而是由一系列只读的层(Layer)组成的。每一层代表了一组文件系统的变更(比如安装了一个软件、添加了一个文件)。这种分层结构最大的好处是共享和复用。例如,如果你有多个基于ubuntu镜像构建的应用,它们都可以共用主机上的同一份ubuntu层,极大地节省了磁盘空间和网络带宽。写时复制:当你用镜像启动一个容器时,Docker会在镜像层的顶部加一个可写层。容器运行时的所有文件修改、新建文件都发生在这个可写层。这意味着,即使容器被删除,底层的镜像本身也不会受到任何影响。这种机制保证了镜像的不可变性和容器的轻量级启动。镜像与容器的关系:镜像是静态的定义,容器是动态的实例。你可以用一个镜像启动一个或多个容器,每个容器都是独立运行、互不干扰的进程2、获取镜像获取镜像主要有两种方式:从仓库拉取现成的,或者自己动手制作。2.1 从镜像仓库拉取最常用的方式是直接从镜像仓库(如 Docker Hub)下载官方或他人分享的镜像。[root@Anolis ~]# docker pull apacheUsing default tag: latest命令:docker pull 镜像名[:标签]示例:docker pull nginx:1.23.3会拉取标签为1.23.3的 Nginx 镜像。如果不指定标签,默认拉取latest标签2.2自己制作镜像当现有镜像无法满足需求时,就需要自己动手了。主要有两种方法:(1)快照方式(docker commit)这种方法适合临时性或一次性的镜像制作启动并修改容器:运行一个基础容器(如docker run -it ubuntu bash),然后在容器内部进行各种操作,比如安装软件、修改配置。提交修改为镜像:操作完成后,退出容器,使用docker commit将容器的当前状态保存为一个新的镜像。命令:docker commit [选项] 容器ID 仓库名/镜像名:标签示例:docker commit -m "安装了vim" -a "作者名" a1b2c3d4 my_ubuntu:with_vim-m:提交说明。-a:作者信息。这种方式虽然简单,但无法实现镜像构建的自动化,也不便于后期维护和版本管理(2)dockerfile+docker build构建镜像这是构建镜像的标准方式,尤其适合需要频繁更新和维护的镜像。Dockerfile是一个文本文件,其中包含了一条条的指令(Instruction),每一条指令都对应着镜像构建过程中的一个步骤。这种方式实现了"基础设施即代码"(Infrastructure as Code),可以确保每次构建的镜像都是一致的Dockerfile 是构建镜像的蓝图。以下是一些最核心的指令:指令说明示例FROM指定基础镜像,必须是 Dockerfile 的第一条有效指令。FROM ubuntu:22.04RUN在构建镜像时执行的命令,常用于安装软件包。RUN apt-get update apt-get install -y python3COPY将构建上下文(通常是Dockerfile所在目录)中的文件或目录复制到镜像中。COPY ./my-app /appADD增强版的COPY,支持从URL复制文件或自动解压压缩包。ADD https://example.com/file.tar.gz /tmp/WORKDIR设置工作目录。后续的RUN、CMD、ENTRYPOINT、COPY、ADD指令都会在这个目录下执行。WORKDIR /appENV设置环境变量,在构建时和容器运行时都生效。ENV NODE_ENV=productionARG定义构建时的变量,只在构建过程中有效,容器运行时无效。ARG VERSION=latestEXPOSE声明容器运行时监听的端口,仅起到文档和提示作用,并不会真的发布端口。EXPOSE 8080CMD指定容器启动时的默认命令。一个Dockerfile只能有一个CMD,若有多个则只有最后一个生效。它可以被docker run命令行参数覆盖。CMD ["node", "app.js"]ENTRYPOINT配置容器启动时的可执行文件,通常和CMD配合使用,使容器可以像命令行程序一样运行。ENTRYPOINT ["top"]CMD ["-d", "10"]VOLUME创建数据卷挂载点,用于持久化或共享数据。VOLUME ["/data"]USER指定运行容器时或执行RUN指令时的用户名或UID。USER nodeONBUILD为镜像设置"触发器",当该镜像作为其他镜像的FROM基础镜像时,触发器指令会在子镜像的构建过程中执行。ONBUILD ADD . /app/src相关示例:[root@Anolis2 dockerfile]# mkdir dockerfile cd dockerfile[root@Anolis2 dockerfile]# vi my-base#1.选择基础镜像FROM ubuntu:22.04#2.维护者信息(可选)LABEL maintainer="my-docker-test"LABEL description="docker-file来构建ubuntu22.04镜像"#3.设置环境变量ENV APP_HOME=/appENV LOG_DIR=/var/log/myappENV LANG=C.UTF-8ENV TZ=Asia/Shanghai#4.设置时区RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime echo $TZ /etc/timezone#5.更新系统 + 安装软件RUN apt-get update apt-get install -y \ curl \ iputils-ping \ wget \ nbs

相关文章:

Docker——镜像

Docker 镜像是容器化技术的核心,它是一个轻量级、独立且可执行的软件包,包含了运行应用程序所需的一切:代码、运行时环境、系统工具、库和配置。可以把镜像想象成一个只读的"模具"或"安装包",而容器则是这个模具运行时的实体实例 1、相关概念 分层存储…...

【datawhale】hello agents开源课程第1章学习记录:初识智能体

章节概述 本章作为《Hello Agents:智能体开发入门》的起点,系统性地构建了关于智能体的基础认知框架。从最基本的定义“智能体是什么”出发,逐步深入探讨了传统智能体的演进路径、大语言模型驱动的新范式、多维度分类体系、PEAS任务环境模型、…...

巧用 AxureShow 插件:将 HTML 一键转换为可编辑 Axure 原型文件

在产品原型设计工作中,我们常会遇到需要将已有的 HTML 页面转换为 Axure 可编辑原型的场景,手动复刻不仅耗时耗力,还容易丢失页面细节。AxureShow 浏览器插件为这个需求提供了高效的解决方案,能实现 HTML 元素到 Axure 原型的一键…...

day115(3.17)——leetcode面试经典150

221. 最大正方形 221. 最大正方形 题目&#xff1a; 题解&#xff1a; class Solution {public int maximalSquare(char[][] matrix) {int n matrix.length;int m matrix[0].length;if(matrixnull||n<1||m<1) {return 0;}int[][] dp new int[n1][m1];int maxSum0;f…...

分布式光伏气象站:光伏发电环境监测系统

分布式光伏气象站&#xff0c;是适配分布式光伏发电场景的环境监测设备&#xff0c;主要用于光伏电站运行监控与数据分析&#xff0c;可实时监测太阳总辐射、环境温湿度、风速风向、光伏组件温度、气压等多项指标&#xff0c;数据可接入监控系统做展示、记录与分析&#xff0c;…...

安装OpenClaw - 阿里百炼->选择模型->飞书界面

官网教程&#xff1a; https://openclaw.ai/ 安装命令&#xff1a;curl -fsSL https://openclaw.ai/install.sh | bash 等待下载安装 常用命令&#xff1a; 安装&#xff1a; # 官方脚本 curl -fsSL https://openclaw.ai/install.sh | bash# 国内网络慢可用加速脚本 # c…...

2026年中秋手抄报模板返工一次后,我总结的模板筛选与修改经验

2026年中秋手抄报模板返工一次后&#xff0c;我总结的模板筛选与修改经验我是小学三年级的语文老师兼班主任&#xff0c;临近中秋&#xff0c;学校要求每个班出一期主题手抄报&#xff0c;下周三就要贴在文化墙上。往年都是让孩子们自由发挥&#xff0c;但效果参差不齐&#xf…...

gstack:让 Claude Code 变身专属全栈开发团队

在日常开发中&#xff0c;我们常常陷入一种困境&#xff1a;向 AI 助手请求功能&#xff0c;它确实写出了代码&#xff0c;但代码能跑却不符合业务逻辑&#xff0c;或者缺少关键的错误处理。我们花费大量时间修正 AI 生成的“字面正确但语义错误”的代码&#xff0c;本质上是因…...

金属外壳屏蔽导致传导超标

一、前言在汽车电子行业&#xff0c;EMC&#xff08;电磁兼容&#xff09;测试是产品上市前必须跨越的“技术门槛”&#xff0c;而传导电流法测试&#xff08;Conducted Emission Current Method&#xff09;更是让不少工程师头疼的“拦路虎”。尤其是随着新能源汽车的快速发展…...

Java入门第154课——Oracle 数据库入门与基础操作

一、数据库基础概念 数据库核心定义 数据库(Database,简称 DB):按照数据结构组织、存储和管理数据的仓库。 数据库管理系统(Database Management System,简称 DBMS):管理数据库的专用软件。 关系数据库:采用关系模型,将数据组织到二维数据表(Table)中,主流产品包括…...

2026 年域名注册价格表:.com/.cn 多少钱?

在 2026 年&#xff0c;域名不仅是网站的地址&#xff0c;更是企业重要的数字资产。随着 ICANN(互联网名称与数字地址分配机构)对基础费用的周期性调整&#xff0c;2026 年的域名注册与续费价格较往年略有上浮。 2026 年域名注册价格表&#xff1a;.com/.cn 多少钱? 一、 2026…...

在职转大模型,要不要裸辞?边工作边学跟得上吗?

小伙伴们有没有过这种崩溃时刻&#xff1a; 每天加班到9点&#xff0c;周末还要on-call&#xff0c;好不容易挤出的2小时学习时间&#xff0c;刚打开教程就被工作消息打断。想裸辞全力冲刺&#xff0c;又怕3个月找不到工作心态崩&#xff1b;想边工作边学&#xff0c;又觉得时间…...

京东商品详情 API 开发实战:JD 商品详情接口调用与返回值解析

在电商API开发中&#xff0c;京东商品详情API是最常用、最核心的接口之一&#xff0c;无论是做比价工具、选品分析、ERP对接&#xff0c;还是第三方服务集成&#xff0c;都离不开它。本文将从实战角度出发&#xff0c;手把手教你完成京东商品详情API的调用、签名生成、数据解析…...

【OpenClaw从入门到精通】第32篇:云厂商OpenClaw托管服务深度对比:阿里云/腾讯云/华为云2026实测指南

摘要:2026年OpenClaw爆发式增长,各大云厂商纷纷推出托管服务,让“云上养虾”成为主流选择。本文从成本构成、部署实操、生态适配、安全特性四大核心维度,深度拆解阿里云、腾讯云、华为云的OpenClaw托管服务。详解三大厂商的服务器配置、模型计费模式,提供从购买到部署的完…...

AI三维卷疯了!Chaos Vantage使用上要做什么改变?看完少走3年弯路

做三维、建筑可视化的兄弟姐妹们&#xff0c;谁懂啊&#x1f62d;&#xff01;2026年AI三维实时渲染卷疯了&#xff0c;Chaos Vantage这实时光追神器是真好用&#xff0c;但对电脑配置的要求也跟着水涨船高。 本地装个高配动辄几万&#xff0c;钱包扛不住啊&#xff01;其实选…...

MEmu模拟器下载和抓包

1.打开MEmu下载——PC上最佳安卓模拟器 然后下载&#xff08;点击此文件即可&#xff0c;可以自定义路径&#xff09; 等待加载好就行了 然后点击桌面的图标打开 点击右侧的这个逍遥模拟器即可&#xff0c;&#xff08;不是逍遥多开器&#xff01;&#xff09; 然后让逍遥模…...

解决大模型长链路指令遗忘!GLM-5-Turbo“龙虾增强”原理解析与 OpenClaw 部署实战

在生成式AI狂飙突进的今天&#xff0c;开发者们往往陷入一个怪圈&#xff1a;模型参数越来越大&#xff0c;但在真实业务流中的表现却常常“掉链子”。尤其是在处理需要多步推理、跨工具调用的长链路任务时&#xff0c;模型经常出现指令遗忘或逻辑断裂。这正是智谱推出GLM-5-Tu…...

低成本私域获客实战:不靠砸钱,靠流程和工具稳拉客

做私域这几年&#xff0c;见过太多老板被获客问题逼得头疼 —— 公域投钱烧得快&#xff0c;拉来的客户留不住&#xff1b;线下地推费人力&#xff0c;最后加的不是羊毛党就是无效客&#xff1b;好不容易有老客&#xff0c;却不知道怎么让他们带新&#xff0c;白白浪费社交资源…...

Rust Cargo 构建系统深入解析

Rust Cargo构建系统深入解析 Rust作为一门现代系统编程语言&#xff0c;凭借其安全性、并发性和高性能吸引了大量开发者。而Cargo作为Rust官方的构建系统和包管理器&#xff0c;是Rust生态中不可或缺的工具。它不仅简化了项目的创建、编译和依赖管理&#xff0c;还提供了丰富的…...

为什么 synchronized 不能防止指令重排序?

在某乎看到一个提问&#xff0c;大家讨论 synchronized 能不能防止指令冲排序&#xff0c;咋说的都有&#xff0c;我发现大家学习底层技术很多时候会有误区。先说我的观点&#xff1a;synchronized 绝对不能防止它内部代码的指令重排序&#xff01;下边说说我的分析哈&#xff…...

all-in-rag零散的笔记(自存/持续更新)

2026.3.17原文说的很详尽&#xff0c;写这么一篇只是为了让自己背的更顺。------1.让代码只输出content&#xff1f;print(answer.content)补充&#xff1a;其中&#xff0c;answer llm.invoke(prompt.format(questionquestion, contextdocs_content))该代码先把 question&…...

COMSOL煤矿模型仿真合集:‘瓦斯抽采与热流固耦合、采空区耦合性分析、倾斜煤层下的采空区参数...

comsol煤矿模型仿真合集 comsol煤矿&#xff08;地下水流&#xff09;模型整理合集&#xff0c; 1.图1-2为瓦斯抽采热流固耦合&#xff0c;采用固体力学、达西和多孔介质传热研究瓦斯抽采下煤层温度、应力、瓦斯渗流的变化情况。 2.图3-4为采空区耦合性分析&#xff0c;贴合一篇…...

AI聊天机器人安全漏洞:暴力诱导与风险警示

AI聊天机器人暴力诱导事件时间线与影响规模近期&#xff0c;一个倡导组织公布了对10款人工智能聊天机器人的研究结果。自去年11月至12月进行测试后&#xff0c;几家聊天机器人制造商称已做出改进以提升安全性。今日&#xff0c;与CNN记者合作开展研究的反数字仇恨中心&#xff…...

目前主流AI绘画工具排名,功能参数全对比

本文对2026年主流AI绘画工具进行功能维度的详细盘点&#xff0c;包括核心功能、技术参数、模型生态、价格等&#xff0c;供开发者和专业用户参考选型。一、主流AI绘画工具概览工具开发方核心技术部署方式访问方式MidjourneyMidjourney Inc.自研模型SaaS需海外访问Stable Diffus…...

MySQL分库分表的实现(二)--水平分表

本文介绍下使用Sharding-JDBC实现水平分表 Sharding-JDBC是轻量级的 java 框架&#xff0c;是增强版的 JDBC 驱动,使用Sharding-JDBC可以简化对分库分表之后数据相关操作。下面分别介绍下水平分表的方法。 1、准备好数据库和数据表 先创建一个course_db数据库&#xff0c;然…...

B2B战略咨询在行业竞争中实现差异化突围

在激烈的行业竞争中&#xff0c;B2B战略咨询发挥了重要作用。通过创新解决方案和个性化服务&#xff0c;企业能够实现显著的差异化&#xff0c;从而提升市场竞争力。咨询公司首先需要进行深入的市场需求分析&#xff0c;以识别客户的真实需求和痛点。这一过程帮助企业围绕客户体…...

第七届人工智能、网络与信息技术国际学术会议(AINIT 2026)

第七届人工智能、网络与信息技术国际学术会议&#xff08;AINIT 2026&#xff09;将于2026年5月15-17日在中国大连举行。本届会议将主要关注人工智能、网络与信息技术面临的新的挑战问题和研究方向&#xff0c;着力反映国际人工智能、网络与信息技术相关技术研究的最新进展。大…...

3·15曝光后深度解析:AI“投毒”与幻觉乱象,GEO技术困局与破局之道

2026年央视315晚会曝光的GEO&#xff08;生成式引擎优化&#xff09;黑产&#xff0c;给所有AI领域技术从业者&#xff08;程序员、算法工程师、数据工程师等&#xff09;敲响了警钟——批量虚假信息“投毒”污染大模型&#xff0c;导致多个主流大模型在“2026年315晚会”这一基…...

小龙虾时代:用于安全连接——内网穿透工具Tailscale 实用手册

Tailscale 在linux Windows 场景下的使用***这里的linux以ubuntu为例&#xff0c;mac同理适合&#xff1a; 你有一台 Ubuntu 桌面机&#xff08;比如养小龙虾放资料&#xff09;你想从 Windows 安全地连接过去你把 安全 放在第一位你希望这份说明能 拿来就用1. Tailscale 到底是…...

担心 openclaw 软件带毒?域卫 Yvevos 帮你一键系统级隔离风险

高权限软件运行的最佳解决方案在日常工作中&#xff0c;OpenClaw 是一款功能强大的工具&#xff0c;但它需要接管操作系统所有权限。这也导致了很多兄弟不敢用&#xff0c;心里直打鼓&#xff1a;“万一这个软件带毒怎么办&#xff1f;它权限这么大&#xff0c;会不会把我的主机…...