【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 命令

相关推荐
Cyber4K2 小时前
【Kubernetes专项】Ingress、Ingress-Controller
云原生·容器·kubernetes
q***76563 小时前
ubuntu 安装 Redis
linux·redis·ubuntu
云道轩3 小时前
在Rocky Linux 上在线安装OpenClaw 2026.2.13
linux·运维·人工智能·智能体·openclaw
zl_dfq3 小时前
Linux 之 【多线程】(STL、智能指针与线程安全、读者写者问题)
linux
mqffc3 小时前
Linux(CentOS)安装 MySQL
linux·mysql·centos
IT 行者4 小时前
OpenClaw 浏览器自动化测试的那些坑(一):Linux Snap 版本的 Chromium 无法使用托管模式
linux·运维·服务器·人工智能
Tangcan-4 小时前
在Ubuntu 22.04上安装redis
linux·redis·ubuntu
麦德泽特4 小时前
STM32与Linux的无缝协作:通过USB CDC/VCP实现高效数据交互
linux·stm32·单片机·嵌入式硬件·安全
RisunJan6 小时前
Linux命令-lvdisplay(显示逻辑卷属性)
linux·运维·服务器