【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立即启动验证

相关推荐
tb_first7 小时前
k8sday11服务发现(2/2)
docker·云原生·容器·kubernetes·k8s
zxcxylong9 小时前
almalinux9.6系统:k8s可选组件安装(1)
云原生·容器·kubernetes·metrics·almalinux·hpa·vpa
MANONGMN1 天前
Kubernetes(K8s)常用命令全解析:从基础到进阶
云原生·容器·kubernetes
科大饭桶1 天前
C++入门自学Day11-- String, Vector, List 复习
c语言·开发语言·数据结构·c++·容器
程思扬2 天前
Nextcloud容器化部署革新:Docker+Cpolar构建高效私有云远程访问新架构
docker·容器·架构
豆芽脚脚2 天前
docker compose再阿里云上无法使用的问题
阿里云·docker·容器
Agome992 天前
Docker之自定义jkd镜像上传阿里云
阿里云·docker·容器
deeper_wind2 天前
k8s-单主机Master集群部署+单个pod部署lnmp论坛服务(小白的“升级打怪”成长之路)
云原生·容器·kubernetes
zhenshanrenhao2 天前
#买硬盘欲安装k8s记
云原生·容器·kubernetes