容器技术基础与实践:从镜像管理到自动运行配置全攻略

1. 相比较虚拟机,容器有哪些技术优势?

(1)直接在操作系统上运行,从而跨系统上的所有容器共享资源,‘

(2)共享主机的内核。

(3)与虚拟机相比,它需要的硬件资源要少得多,因此容器的启动速度也更快。

(4)包括所有依赖项。

2. 容器镜像是什么?

       容器镜像是包含编码步骤的静态文件,它充当创建容器的蓝图。

3. RHEL 提供了哪些容器工具?

       Podman管理容器和容器镜像;Buildah创建容器镜像;Skopeo检查、复制、删除和签署镜像。

4. 根容器和无根容器有什么区别?

       由特权用户运行的容器称为Rootful容器,由非特权用户运行的容器称为Rootless容器。

       Rootless容器不允许使用通常为特权用户保留的系统资源。

5. 请谈一下容器镜像(image)和仓库/注册表 (registry)的关系。

       容器镜像是容器运行的 “静态内容”,仓库是这些内容的 “存储与分发平台”。二者相互依赖:镜像通过仓库实现跨环境共享和版本管理,仓库通过存储镜像发挥其分发价值,共同支撑了容器从构建到部署的全生命周期。

6. 请写出以 shell 交互方式运行容器的命令。

       基础命令为 `podman run -it --rm <镜像名> /bin/bash`,其中 `-i` 保持输入交互,`-t` 分配终端,`--rm` 退出后自动删除容器,`/bin/bash` 启动 shell。 

       扩展场景包括:挂载主机目录(`-v 主机路径:容器路径`)、暴露端口(`-p 主机端口:容器端口`)、非 root 运行(`--user UID`);若容器已后台运行,可用 `podman exec -it <容器ID/名称> /bin/bash` 进入新 shell。

7. 请说明如何配置容器仓库。

(1)仓库类型选择:根据场景选工具,轻量用Docker Registry,企业级用Harbor(带权限、扫描)或Red Hat Quay(集成OpenShift),OpenShift环境优先用内置仓库。

(2)基础配置: 

   - 启动仓库并挂载存储实现持久化; 

   - 配置HTTPS(生成证书)和基础认证(htpasswd); 

   - 客户端需信任证书或配置非安全仓库,通过login验证后可推送/拉取镜像。(3)企业级配置: 

   - Harbor:部署时配置HTTPS和存储(如Ceph),通过Web界面管理项目和权限; 

   - Quay:高可用部署(结合Operator),集成LDAP认证和S3/Ceph存储。

(4)客户端适配:配置证书信任或非安全仓库,确保与仓库正常通信。

8. 如何检查仓库中的和本地的容器镜像?

       本地镜像:用podman images或docker images列出现有镜像,inspect看详情、history看层结构,结合grep搜索特定镜像。

       远程仓库镜像:公共仓库(如 Docker Hub)用skopeo list-tags查看标签;私有仓库(如 Harbor)操作类似,需先登录,也可通过仓库 API 查询。

       对比两者:检查本地是否有对应版本,通过skopeo inspect和podman inspect获取远程与本地镜像的唯一标识(Digest)进行比对。

9. 如何移除本地镜像?

       podman rmi <镜像ID>

       podman rmi <仓库名:标签> 

       docker rmi <镜像ID或名称>

10. 使用容器时,如何将主机端口和容器端口进行映射?

       命令参数:-p/--publish,格式主机端口:容器端口[协议](协议默认为 TCP)

11. 在运行容器时如何给容器传递参数?

(1)命令行参数:`podman run 镜像 参数1 参数2`,直接传递给ENTRYPOINT/CMD

(2)环境变量:`-e 变量名=值` 或 `--env-file 文件`,容器内应用读取

(3)配置文件挂载:`-v 主机路径:容器路径`,覆盖默认配置

(4)构建参数(ARG):`--build-arg 变量名=值`,构建时传递

(5)卷挂载:通过数据卷传递大量数据

(6)结构化数据:通过环境变量传递JSON/YAML(需应用解析)

12. 写出管理容器时的常见命令,比如查看、 终止、 删除、 重启等。

       查看容器:podman start <容器ID或名称>

       删除容器:podman rm <容器ID或名称>

       启动/终止容器:podman start/stop <容器ID或名称>

       进入容器:podman exec -it <容器ID或名称> /bin/bash

       重命名容器:podman rename <旧名称> <新名称>

       暂停/恢复容器:podman pause <容器ID或名称>

            podman unpause <容器ID或名称>

       导出容器为tar文件:podman export <容器ID或名称> > container.tar

       从tar文件导入为镜像:podman import container.tar myimage:v1

13. 如何在容器中运行业务系统的命令?

(1)对运行中容器:用exec -it进入容器交互执行,或直接exec非交互执行(如podman exec 容器ID 命令)。

(2)启动容器时:在run命令后直接指定业务命令,覆盖默认启动指令(如podman run 镜像 命令)。

(3)通过启动脚本:镜像中配置ENTRYPOINT指向脚本,容器启动时自动执行初始化及业务命令。

14. 如何为容器提供持久存储?

(1)数据卷(Volumes):容器引擎管理的存储(如podman volume create),独立于容器生命周期,推荐使用。

(2)绑定挂载(Bind Mounts):挂载主机目录到容器(如-v /host:/container),适合开发调试。

(3)tmpfs 挂载:数据存于内存(--tmpfs /path),容器停止后丢失,适合临时缓存。

(4)存储插件:对接外部存储系统(如 NFS、Ceph),适合生产集群。

15. 如何进行配置才能使容器在 Linux 启动时自动运行?

(1)容器引擎自带策略:启动容器时加--restart参数,如--restart=always(系统重启后必启)、--restart=unless-stopped(手动停止后不自动启),也可通过podman/docker update修改已有容器策略。

(2)systemd 服务管理:创建服务文件(如/etc/systemd/system/容器名.service),定义启动 / 停止命令及依赖,然后systemctl daemon-reload并enable --now启用,支持控制启动顺序等精细配置。

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

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

相关文章

书生浦语第五期-L1G4-InternLM 论文分类微调实践(XTuner 版)

XTuner介绍一句话介绍XTuner&#xff1a;XTuner 是一个高效、灵活、全能的轻量化大模型微调工具库。核心特点&#xff1a;高效&#xff1a;支持在有限资源下微调大模型&#xff0c;如在8GB显存上微调7B参数模型&#xff0c;也支持多节点微调70B模型&#xff1b;自动分发高性能算…

从灵感枯竭到批量产出:无忧秘书创作平台如何重构内容生产者的工作流程?全环节赋能分析

在当今快节奏的数字时代&#xff0c;内容创作者面临着前所未有的挑战。无论是自媒体运营者、自由撰稿人还是企业营销人员&#xff0c;都需要高效地生产高质量的内容以满足市场需求。然而&#xff0c;灵感枯竭、效率低下以及内容质量不稳定等问题常常困扰着这些内容生产者。为了…

【开源工具】基于Python的PDF清晰度增强工具全解析(附完整源码)

📄✨ 【开源工具】基于Python的PDF清晰度增强工具全解析(附完整源码) 🌈 个人主页:创客白泽 - CSDN博客 🔥 系列专栏:🐍《Python开源项目实战》 💡 热爱不止于代码,热情源自每一个灵感闪现的夜晚。愿以开源之火,点亮前行之路。 🐋 希望大家多多支持,我们一起进…

Qwen-Image开源模型实战

Qwen-Image开源模型实战&#xff1a;ComfyUI低显存量化部署与中文海报生成指南 阿里云通义千问团队最新开源的Qwen-Image模型以其卓越的中英文文本渲染能力在AI绘图领域掀起了一场革命。这款200亿参数的MMDiT架构模型不仅能够生成高质量图像&#xff0c;更突破了AI绘图长期存在…

JavaWeb03——javascript基础语法

1.什么是JavaScript&#xff1f;JavaScript&#xff08;简称 JS&#xff09;是一种 编程语言&#xff0c;它主要用来为网页添加交互功能。它可以让网页变得动态&#xff0c;让它不仅仅是静态的文字和图片&#xff0c;还能响应用户操作&#xff08;比如点击按钮、弹框警告等&…

数据库入门:从零开始构建你的第一个数据库

欢迎来到数据库的世界&#xff01;今天&#xff0c;我们将一起探索如何创建、管理和查询数据库。无论你是初学者还是希望加深理解的开发者&#xff0c;这篇博客都将帮助你更好地掌握数据库的基础知识。一、数据库的基本操作创建数据库首先&#xff0c;让我们从创建一个新数据库…

从汇编角度揭秘C++构造函数(1)

C的构造函数一直比较神秘&#xff0c;今天我们通过汇编的角度来揭秘一下&#xff0c;它的本质是什么。与常规函数有什么不同。从以下这段代码说起&#xff1a; class Person { public:Person(int age) { _age age; }void printAge(){ printf("age %d\r\n",_age); …

java10学习笔记

Java 10 于 2018 年 3 月发布&#xff0c;是 Java 平台按照新的六个月发布周期发布的第一个版本。虽然相比 Java 8 和 Java 9 的大型更新&#xff0c;Java 10 的变化较小&#xff0c;但仍然引入了一些重要的特性&#xff0c;特别是本地变量类型推断&#xff08;var&#xff09;…

Flutter Listview的基本使用

Listview() 前端页面常见的一个以列表方式显示内容的组件。可垂直或水平滚动的列表。属性说明scrollDirection设置滚动的方向&#xff0c;取值包括horizontal、verticalreverse设置是否翻转&#xff0c;默认值falseitemExtent设置滚动方向子元素的长度&#xff0c;垂直方向为高…

强化学习笔记:从Q学习到GRPO

推荐学习huggingface的强化学习课程&#xff0c;全面了解强化学习的发展史。 以下是个人笔记&#xff0c;内容不一定完整&#xff0c;有些是个人理解。 基于值函数(value function)的强化学习 基于值函数(value function)的强化学习&#xff1a;学习的是一个值函数&#xff0…

MySQL索引底层原理与性能优化实践

#技术栈深潜计划一、前言 在日常开发中&#xff0c;MySQL数据库以其高效、易用、可扩展等特性成为最主流的关系型数据库之一。而索引作为数据库查询优化的核心工具&#xff0c;被誉为“数据库的加速器”。但你真的了解MySQL索引的底层原理吗&#xff1f;为什么InnoDB默认采用B树…

Ext系列文件系统

1.硬件常见的硬件有磁盘、服务器、机柜、机房机械磁盘但是计算机中唯一的一个机械设备磁盘外设的特点就是外设慢容量大&#xff0c;价格便宜1.1.磁盘的物理结构磁盘的物理图&#xff1a;磁盘的存储图扇区:是磁盘存储数据的基本单位&#xff0c;512字节&#xff0c;块设备磁盘的…

前缀函数——KMP的本质

前缀函数我个人觉得 oiwiki 上的学习顺序是很合理的&#xff0c;学 KMP 之前先了解前缀函数是非常便于理解的。前后缀定义 前缀 prefixprefixprefix 指的是从字符串 SSS 的首位到某个位置 iii 的一个子串&#xff0c;这样的子串写作 prefix(S,i)prefix(S,i)prefix(S,i)。 后缀 …

解决chrome下载crx文件被自动删除,加载未打包的扩展程序时提示“无法安装扩展程序,因为它使用了不受支持的清单版本解决方案”

解决chrome下载crx文件被自动删除 【chrome设置-隐私与安全-安全浏览】&#xff0c;选择 不保护 【chrome设置-下载内容】&#xff0c;勾选 下载前询问每个文件的保存位置 下载crx文件时&#xff0c;选择保存文件夹&#xff0c;将 .crx后缀 改为 .zip后缀&#xff0c;再确定。 …

嵌入式学习day23-shell命令

linux软件编程学习大纲&#xff1a;1.IO操作文件2.多任务编程3.网络编程4.数据库编程5.硬件设备管理学习目标&#xff1a;1.学习接口调用&#xff08;第一层&#xff09;2.软件操作流程和思想&#xff08;第二层&#xff09;3.软件设计思想和流程架构&#xff08;第三层&#x…

GPT-5 系列深度详解:第1章-引言(目录)

1 引言2 模型数据与训练3 观察到的安全挑战与评估 3.1 从强制拒绝到安全完成 3.2 禁⽌内容 3.3 拍⻢屁 3.4 越狱 3.5 指令层级 3.6 幻觉 3.7 欺骗 3.7.1 欺骗思维链监控 3.8 图像输入 3.9 健康 3.10 多语言性能 3.1.1公平性与偏见&#xff1a; BBQ评估4 红队测试与外部评估…

NineData 新增支持 AWS ElastiCache 复制链路

2025 年&#xff0c;绝大多数企业已完成业务上云&#xff0c;以获取更高的弹性、可扩展性和成本效益。AWS ElastiCache 作为 AWS 提供的全托管式内存数据库服务&#xff0c;已成为许多企业在云上构建高并发、低延迟应用的理想选择。NineData 数据复制现已全面支持从自建 Redis …

人工智能-python-特征选择-皮尔逊相关系数

以下是关于特征选择中常用方法的表格总结&#xff0c;并且详细阐述了皮尔逊相关系数的原理、计算方法、步骤以及示例。 常用特征选择方法总结方法原理优点缺点使用场景过滤法&#xff08;Filter Method&#xff09;基于特征的统计信息&#xff08;如相关性、方差等&#xff09;…

LabVIEW多循环架构

​LabVIEW的多循环架构是一种常见的架构&#xff0c;本文Temperature Monitoring.vi 采用 LabVIEW 典型的多循环并行架构&#xff0c;通过功能模块化设计实现温度监测全流程&#xff0c;各循环独立运行又协同工作&#xff0c;构成完整的监测系统。1. 事件处理循环&#xff08;E…

深入理解Maven BOM

一、什么是Maven BOM&#xff1f; 1.1 BOM的基本概念 Maven BOM&#xff08;Bill of Materials&#xff0c;材料清单&#xff09;是一种特殊的POM文件&#xff0c;它主要用于集中管理多个相关依赖的版本。BOM本身不包含任何实际代码&#xff0c;而是作为一个 版本管理的"参…