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

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

答:1.容器比虚拟机更轻巧,因为它们不需要运行完整的操作系统,所以占用的磁盘空间和内存都更少。2.容器启动也更快,因为它们共享了宿主机的操作系统内核。3.容器更容易移植,因为它们不依赖于特定的操作系统环境,使得在不同环境中的部署更加可靠和可重复。4.容器可以通过编排工具(如 Kubernetes)集中管理,简化了应用的部署、更新和扩展过程。Kubernetes (K8s) 实现了规模化的容器高效管理。

2. 容器镜像是什么?

答:容器镜像是一个轻量级、独立、可执行的软件包;容器镜像是创建容器的蓝图。容器镜像打包一个应用程序连同它所有的依赖:系统库函数;编程语言运行时;编程语言库函数;配置;静态数据文件;image 不可更改。

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

答:1.podman:管理容器和容器 image 2.skopeo:检查、复制、删除和签名 image 3.buildah:创建新的容器 image

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

答:1.根容器( Rootfull Container ):运行在操作系统的用户空间,需要使用特权访问系统资源Docker(传统)、Podman 2.无根容器( Rootless Container ):在普通用户空间下运行,不需要特权访问(普通用户),无根容器更安全。Podman、Buildah

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

答:1. 容器镜像:一个打包了应用程序运行所需环境的文件集合。2.容器注册表 (registry) 是用于存储和检索容器 image 的存储库。3.开发人员将 image 上传或推送到 registry . 用户可以从 registry 下载或拉取这些容器 image 到本地系统,以便运行容器

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

答:1.docker run -it <image_name_or_id> /bin/bash

2.podman run -it <image_name_or_id> /bin/bash

这些命令会 启动一个交互式的容器会话,连接到容器的 shell。

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

答:registry 的默认配置文件是 /etc/containers/registries.conf 文件。Podman:全局配置/etc/containers/registries.conf,用户级配置~/.config/containers/registries.conf,配置后无需重启服务。

步骤:1.创建用户配置目录:mkdir -p $HOME/.config/containers

2.编写 registries.conf,配置镜像加速、私有仓库信任等规则

3.配置即时生效,无需重启服务

容器仓库配置的核心是让 Podman/Docker 识别仓库地址、信任仓库(尤其是私有仓库),并配置可选的镜像加速。

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

答:1.查看仓库中的镜像:docker search <image_name>或者使用 Podman:podman inspect <image_name>2.查看本地镜像: docker images或者使用 Podman: podman images

9. 如何移除本地镜像?

答:使用 Podman: podman rmi <image_name_or_id>

docker rmi <image_name_or_id>

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

答:使用 -p 参数可以将主机的端口映射到容器的端口。 podman run -p <host_port>:<container_port> <image_name> [主机IP]:[主机端口]

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

答:通过在 docker run 或 podman run 命令后面添加参数来传递给容器的应用程序。podman run <image_name> <command> <args>例如:--rm(自动删除)、-it(交互终端)容器运行参数需放在<image_name>之前

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

答:查看容器: podman ps (-a 显示所有容器 -q 只输出容器的 ID) 终止容器:podman stop <container_id> 删除容器:podman rm <container_id> 重启容器:podman restart <container_id>

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

答:使用 docker exec 或 podman exec 命令可以在运行的容器中执行任意命令。

docker exec -it <container_id> <command>

或者使用 Podman: podman exec -it <container_id> <command>

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

答:持久化的核心方式是使用 --volume(或 -v)选项,将主机文件系统或数据卷挂载到容器内。1.创建数据卷:docker volume create <volume_name>或者使用 Podman: podman volume create <volume_name> 2.挂载数据卷:docker run -v <volume_name>:<container_path> <image_name>或者使用 Podman:podman run -v <host_path>:<container_path> <image_name>

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

答:1. 创建用户级 systemd 目录mkdir -p ~/.config/systemd/user/

  1. 编写容器服务文件(如:~/.config/systemd/user/my-container.service)

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

  3. 设置服务开机自启systemctl --user enable my-container.service

  4. 实现免登录启动loginctl enable-linger $(whoami)

要关闭此操作,使用 loginctl disable-linger 命令

相关推荐
kymjs张涛6 小时前
OpenClaw 学习小组:初识
android·linux·人工智能
程序设计实验室8 小时前
经历分享,发现挖矿木马后,服务器快速备份与重装(腾讯云平台)
linux
Miku169 小时前
OpenClaw-Linux+飞书官方Plugin安装指南
linux·人工智能·agent
Miku169 小时前
OpenClaw 接入 QQ Bot 完整实践指南
linux·人工智能·agent
AI攻城狮11 小时前
OpenFang 给我的一个提醒:AI Agent 真正难的不是自主,而是治理
人工智能·云原生·aigc
Java陈序员14 小时前
轻量强大!一款现代化的 Kubernetes 集群管理与监控工具!
云原生·容器·kubernetes
Yogurt_cry14 小时前
[树莓派4B] 闲置近10年的爱普生 L310 打印机爆改无线打印机
linux·物联网·树莓派
Johny_Zhao1 天前
OpenClaw中级到高级教程
linux·人工智能·信息安全·kubernetes·云计算·yum源·系统运维·openclaw
Sheffield2 天前
Docker的跨主机服务与其对应的优缺点
linux·网络协议·docker
AI攻城狮2 天前
OpenClaw 里 TAVILY_API_KEY 明明写在 ~/.bashrc,为什么还是失效?一次完整排查与修复
人工智能·云原生·aigc