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

目录

[1. 相比较虚拟机,容器有哪些技术优势?(面试)](#1. 相比较虚拟机,容器有哪些技术优势?(面试))

[2. 容器镜像是什么?](#2. 容器镜像是什么?)

[3. RHEL 提供了哪些容器工具?](#3. RHEL 提供了哪些容器工具?)

[4. 根容器和无根容器有什么区别?](#4. 根容器和无根容器有什么区别?)

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

[6. 请写出以 shell 交互方式运行容器的命令。](#6. 请写出以 shell 交互方式运行容器的命令。)

[7. 请说明如何配置容器仓库。](#7. 请说明如何配置容器仓库。)

[8. 如何检查仓库中的和本地的容器镜像?](#8. 如何检查仓库中的和本地的容器镜像?)

[9. 如何移除本地镜像?](#9. 如何移除本地镜像?)

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

[11. 在运行容器时如何给容器传递参数?](#11. 在运行容器时如何给容器传递参数?)

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

[13. 如何在容器中运行业务系统的命令?](#13. 如何在容器中运行业务系统的命令?)

[14. 如何为容器提供持久存储?](#14. 如何为容器提供持久存储?)

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


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

答:容器比虚拟机更轻巧,因为它们不需要运行完整的操作系统,所以占用的磁盘空间和内存都更少。

容器启动也更快,因为它们共享了宿主机的操作系统内核。

容器更容易移植,因为它们不依赖于特定的操作系统环境,这使得它们在不同的环境中运行更加一致。

容器的扩展性更好,可以快速复制出多个实例来应对高负载。

容器代表微服务

逻辑上进行隔离,本质上就是一个进程


2. 容器镜像是什么?

答:容器镜像是一个轻量级、可执行的软件包,就像是一份包含所有必需软件和依赖的蓝图,它定义了容器内部的环境。包含了应用程序的代码、运行时环境、库文件、配置文件等,确保了应用程序可以在任何地方以相同的方式运行

Docker 镜像

定义:Docker 镜像是容器运行的模板,包含文件系统、应用程序、依赖库和配置文件。

特点:镜像是只读的,启动容器时会在其基础上添加可写层。

构建镜像:

①Dockerfile:定义镜像构建步骤的文本文件。

②构建上下文:包含所有需要的文件(如代码、配置文件)的目录。

③命令:在构建上下文目录中运行 docker build -t 镜像名:版本号 .。

镜像结构:由多层组成,每层对应 Dockerfile 中的一条指令,最终叠加形成完整镜像。

总结:镜像是容器的模板,通过 Dockerfile 和构建上下文用 docker build 命令构建。


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

答:Podman:一个用于运行和管理容器的工具,支持Docker和OCI容器。

Buildah:一个用于构建OCI容器镜像的工具。

Skopeo:一个用于检查、传输和存储容器镜像的工具。

CRI-O:一个轻量级的容器运行时,用于Kubernetes集群


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

答:根容器:运行时具有完整的root权限,可以访问宿主机的所有资源。

无根容器:运行时没有root权限,限制了对宿主机资源的访问,提高了安全性


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

答:容器镜像是创建容器的基础(就像是我们构建容器的模板),而仓库/注册表是存储和分发容器镜像的地方(存放这些模板的地方)。开发者可以将构建好的镜像推送到仓库,其他用户可以从仓库中拉取镜像来创建容器。


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

答:podman run -it --name mycontainer <image> /bin/bash

-it 参数表示以交互式模式运行容器

--name mycontainer 指定容器的名称

<image> 是要运行的容器镜像


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

答:podman login registry.example.com 登录仓库

在 /etc/containers/registries.conf 添加私有仓库配置

重启服务:sudo systemctl restart docker


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

答:podman images # 本地镜像

podman search nginx # 仓库镜像


9. 如何移除本地镜像?

答:podman rmi 镜像名称

docker rm删容器


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

答:podman run -p 主机端口:容器端口 镜像名

podman run -p 8080:80 nginx

容器是一个完全隔离的系统,跟一个主机没什么区别


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

答:podman run 镜像名 -e [参数]

podman run alpine -e 参数


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

答:查看容器 podman ps -a

停止容器 podman stop ID

删除容器 podman rm ID

重启容器 podman restart ID


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

答:podman exec 容器ID 命令

podman exec myapp ls /app


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

答:卷存储:podman run -v 卷名:/容器路径 镜像名

目录挂载:podman run -v /主机路径:/容器路径 镜像名


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

答:编写 systemd 服务文件(如/etc/systemd/system/容器名.service), 内容含启动命令(如docker start 容器名)

执行systemctl enable 容器名.service启用自启

systemctl start 容器名.service立即启动验证

相关推荐
nathan05291 小时前
Kubernetes 实战练习指南
云原生·容器·kubernetes
syty20203 小时前
K8s是什么
容器·kubernetes·dubbo
灵犀物润6 小时前
Kubernetes 配置检查与发布安全清单
安全·容器·kubernetes
xy_recording7 小时前
Day20 K8S学习
学习·容器·kubernetes
九章云极AladdinEdu8 小时前
Kubernetes设备插件开发实战:实现GPU拓扑感知调度
人工智能·机器学习·云原生·容器·kubernetes·迁移学习·gpu算力
泡沫冰@8 小时前
K8S集群管理(4)
云原生·容器·kubernetes
蒋星熠8 小时前
深入 Kubernetes:从零到生产的工程实践与原理洞察
人工智能·spring boot·微服务·云原生·容器·架构·kubernetes
泡沫冰@9 小时前
K8S集群管理(2)
云原生·容器·kubernetes
敲上瘾9 小时前
Docker 存储卷(Volume)核心概念、类型与操作指南
linux·服务器·数据库·docker·容器·架构
IT利刃出鞘10 小时前
Docker--宿主机和容器相互拷贝文件
运维·docker·容器