“红帽系统管理二”知识点问答题:第13章 运行容器

📅 2026/7/16 10:14:11 👁️ 阅读次数 📝 编程学习
“红帽系统管理二”知识点问答题:第13章 运行容器

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

1)更轻量:容器共享主机内核

2)启动更快:秒级启动,虚拟机是分钟级

3)占用资源更少:内存 / 存储只需要 MB 级,虚拟机是 GB 级

4)移植性更好:到处运行,环境一致不冲突

5)隔离够用:进程、网络、文件系统隔离,安全稳定

2. 容器镜像是什么?

容器镜像是创建容器的只读模板 / 蓝图;里面打包了:应用 + 依赖库 + 配置 + 运行环境;镜像是不可修改的,容器是从镜像跑出来的实例

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

podman:运行、管理容器和镜像(最常用)

skopeo:检查、复制、签名镜像

buildah:构建自定义容器镜像

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

根容器:用 root 用户运行,权限大,安全性低

无根容器:普通用户运行,更安全,但不能使用 1024 以下特权端口

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

registry是用于存储和检索容器image的存储库。开发人员将image上传或推送到registry。用户可以从registry下载或拉取这些容器 image 到本地系统,以便运行容器。

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

podman run -it --name容器名 镜像名 /bin/bash

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

配置文件:

系统级:/etc/containers/registries.conf

用户级:~/.config/containers/registries.conf

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

skopeo inspect docker://仓库/镜像名

9. 如何移除本地镜像?

必须先删除依赖该镜像的容器,再执行:podman rmi 镜像名或ID

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

运行时加 -p 主机端口:容器端口:

podman run -d -p 8080:80 --name myweb镜像名

访问主机的 8080 → 自动转到容器 80

注:无根容器不能映射主机上 1024 以下的特权端口

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

用 -e 变量名=值

podman run -d -e MYSQL_PASSWORD=redhat --name db镜像名

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

podman ps #查看运行中的容器

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

podman stop容器名 # 停止

podman start容器名 # 启动

podman restart容器名 # 重启

podman rm容器名 # 删除已停止的容器

podman logs容器名 # 查看日志(排错)

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

podman exec容器名 命令

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

可将:Z选项附加到podman run-v选项,以自动设置目录的SELinux context

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

1.生成 systemd 服务文件

podman generate systemd --new --name容器名 -f

2.放到用户服务目录

~/.config/systemd/user/

3.重新加载、启用、开机自启

systemctl --user daemon-reload

systemctl --user enable --now container-容器名.service

4.关键:允许用户不登录也启动

loginctl enable-linger