当前位置: 首页 > 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.lryc.cn/news/606170.html

相关文章:

  • uvicorn 启动重复加载 多次加载
  • [12月考试] B
  • Python 数据科学与可视化工具箱 (一) - 数组属性:`shape`, `dtype`, `ndim`, `size`
  • day28_2025-07-31
  • Valgrind终极指南:深入内存安全与性能瓶颈检测
  • 进程控制:从创建到终结的完整指南
  • 解决音视频开发中 因mp4中断 无法播放的问题
  • [特殊字符] 数据可视化结合 three.js:让 3D 呈现更精准,3 个优化经验谈
  • 前端框架Vue3(三)——路由和pinia
  • RabbitMQ安装与介绍
  • Disruptor高性能基石:Sequence并发优化解析
  • 去重、top_n()、pull()、格式化
  • 数据结构第4问:什么是栈?
  • BR/EDR PHY帧结构及其具体内容
  • 51c自动驾驶~合集12
  • python基础语法3,组合数据类型(简单易上手的python语法教学)(课后习题)
  • 从0到1了解热部署
  • 一天两道力扣(7)
  • 力扣 hot100 Day61
  • 银河麒麟桌面操作系统:自定义截图快捷键操作指南
  • 机器人学和自动化领域中的路径规划方法
  • 解决Git升级后出现的问题
  • 国产芯+单北斗防爆终端:W5-D防爆智能手机,助力工业安全通信升级
  • 将开发的软件安装到手机:环境配置、android studio设置、命令行操作
  • ClickHouse vs PostgreSQL:数据分析领域的王者之争,谁更胜一筹?
  • 2683. 相邻值的按位异或
  • USRP捕获手机/路由器数据传输信号波形(中)
  • DeepCompare文件深度对比软件:智能差异分析与可视化功能深度解析
  • visual studio 安装总结
  • 搭建文件共享服务器samba————附带详细步骤