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

【RH134 问答题】第 13 章 运行容器

目录

  • 相比较虚拟机,容器有哪些技术优势?
  • 容器镜像是什么?
  • RHEL 提供了哪些容器工具?
  • 根容器和无根容器有什么区别?
  • 请谈一下容器镜像(image)和仓库/注册表 (registry)的关系。
  • 请写出以 shell 交互方式运行容器的命令。
  • 请说明如何配置容器仓库。
  • 如何检查仓库中的和本地的容器镜像?
  • 如何移除本地镜像?
  • 使用容器时,如何将主机端口和容器端口进行映射?
  • 在运行容器时如何给容器传递参数?
  • 写出管理容器时的常见命令,比如查看、 终止、 删除、 重启等。
  • 如何在容器中运行业务系统的命令?
  • 如何为容器提供持久存储?
  • 如何进行配置才能使容器在 Linux 启动时自动运行?


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

  • 启动更快,容器启动时间为秒级甚至毫秒级,而虚拟机通常需要几十秒。
  • 资源占用更少,容器共享主机操作系统内核,避免了虚拟机运行完整操作系统的开销。
  • 更高的运行密度和效率,同一硬件上可运行更多容器实例,提升资源利用率。
  • 便携性更强,容器镜像包含应用及依赖,方便在不同环境快速部署和迁移。
  • 保证环境一致性,减少开发、测试和生产环境间的差异。
  • 适合自动化和微服务架构,支持快速扩展和弹性伸缩。

容器镜像是什么?

容器镜像是一个包含应用程序及其运行环境(如代码、依赖库、配置文件和系统工具等)的只读模板。它用于创建容器实例保证应用在任何环境中都能以一致的方式运行。容器镜像通常分层构建,便于复用和高效存储。


RHEL 提供了哪些容器工具?

podman:无守护进程的容器管理工具,用于构建、运行和管理容器和容器组。

buildah:专注于构建容器镜像的工具,支持灵活的镜像创建和定制。

skopeo:用于查看、复制和签名容器镜像,支持远程镜像仓库操作。


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

根容器和无根容器的区别主要在于运行权限
根容器root身份运行,拥有更高权限,可以访问和操作系统的底层资源,但安全风险较大。
无根容器则以普通用户身份运行,不需要管理员权限,权限受限,更加安全,适合普通用户和多租户环境。


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

容器镜像是包含应用及其运行环境的只读模板,而仓库(registry)则集中存储和管理这些镜像。用户从仓库拉取镜像到本地运行,也可以将本地镜像推送到仓库共享。


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

podman run -it <镜像名> /bin/bash

-i 表示保持标准输入(interactive),
-t 分配伪终端(terminal),
/bin/bash 是容器内启动的 shell。


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

registries.conf文件中的[registries.search]配置项中配置容器仓库。
此文件默认在etc/containers/registries.conf
用户可在 $HOME/.config/containers/registries.conf 覆盖默认设置。


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

检查远程仓库中的容器镜像:skopeo inspect
检查本地的容器镜像:podman imagespodman inspect


如何移除本地镜像?

podman rmi <镜像ID或镜像名称>


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

podman run -p <主机端口>:<容器端口> <镜像>


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

使用 podman run 命令和-e选项,将环境变量传递到容器内的进程。


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

查看正在运行的容器:podman ps

查看所有容器(包括已停止的):podman ps -a

查看容器详细信息:podman inspect <容器ID/容器名称>

查看容器日志:podman logs <容器ID/容器名称>

停止容器:podman stop <容器ID/容器名称>

启动容器:podman start <容器ID/容器名称>

重启容器:podman restart <容器ID/容器名称>

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

查看容器资源使用情况:podman stats <容器ID/容器名称>


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

非交互式:podman exec <容器ID/容器名称> <业务系统命令>
交互式:podman exec -it <容器ID/容器名称> <业务系统命令>


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

  1. 使用数据卷(Volume)
    创建数据卷:
    podman volume create <卷名>
    挂载数据卷运行容器:
    podman run -v <卷名>:<容器内路径> <镜像名>
  2. 挂载主机目录
    将主机目录挂载到容器内:
    podman run -v <主机目录路径>:<容器内路径> <镜像名>

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

  1. 使用 podman 生成 systemd 服务单元文件,如:
    podman generate systemd --name <容器名> > ~/.config/systemd/user/<服务名>.service
    如果加 --new 选项:
    podman generate systemd --new --name <服务名> > ~/.config/systemd/user/<服务名>.service
    作用:启动时创建新容器,停止时删除容器(适合一次性运行的容器)

  2. 重新加载 systemd 用户配置:
    systemctl --user daemon-reload

  3. 启用服务,使其随系统启动自动运行:
    systemctl --user enable <服务名>

  4. 如果需要用户未登录也自动启动容器,运行命令:
    loginctl enable-linger <用户名>
    允许该用户的 systemd 服务在无登录状态下持续运行。


http://www.dtcms.com/a/308791.html

相关文章:

  • 谷歌浏览器之f12打开控制台debugger模式实现条件控制打印输出及字节数组条件
  • Java 并发编程基础概念与常见问题梳理
  • 电商项目_性能优化_高并发缓存一致性
  • 【Unity笔记04】数据持久化
  • HTM 5 的离线储存的使用和原理
  • Unity游戏开发中的3D数学基础详解
  • MATLAB 2025a的下载以及安装,安装X310的测试附加功能(附加安装包)
  • 因为想开发新项目了~~要给老Python项目整个虚拟环境
  • 旋转花键在机械加工中心ATC装置中有什么优势?
  • 01 全基因组关联分析原理
  • vlan技术
  • 【PHP属性详解:从基础到只读的完全指南】
  • 企业智脑1.3.1技术升级全面解读:AI笔记引擎如何重塑企业知识管理范式
  • 计算机系统基础与操作系统笔记
  • Spring Boot Admin 监控模块笔记-实现全链路追踪
  • 另外几种语言挑战100万行字符串文本排序
  • Web开发-PHP应用原生语法全局变量数据接受身份验证变量覆盖任意上传(代码审计案例)
  • 风力发电场景下设备状态监测与智能润滑预测性维护策略
  • 【Python气象可视化】用Cartopy+Matplotlib绘制青藏高原涡移动轨迹图(附完整代码+颜色渐变时间轴)
  • 数据库学习--------数据库日志类型及其与事务特性的关系
  • 题目:BUUCTF之rip(pwn)
  • [算法]Leetcode3487
  • 【高等数学】第七章 微分方程——第五节 可降阶的高阶微分方程
  • 第三章·数据链路层
  • 前端路由深度解析:Hash 模式 vs. History 模式
  • 数字化应急预案:构筑现代安全防线
  • 实时语音流分段识别技术解析:基于WebRTC VAD的智能分割策略
  • MySQL 中的事务隔离级别有哪些?分别解决什么问题?
  • 图结构知识构造方法详解 ——面向垂直领域的高效知识库构建方案
  • CentOS 7 编译 Redis 6.x 完整教程(解决 GCC 版本不支持 C11)