红帽9运行容器一
运行容器:容器概念,构建,存储和运行容器的核心技术(用户资源管理的控制组,进程隔离的命名空间,加强安全边界的SELinux和Seccomp)
软件运行需要环境,系统库,配置文件和服务等
容器是由一个或多个与系统其余部分隔离的进程组成的集合。
运行库和运行时资源与主机操作系统或虚拟机监控程序隔离开 容器和虚拟机相同点
不用点:不同的方式与硬件和底层操作系统交互
虚拟机:多个操作系统同时在一个硬件平台运行,使用虚拟机监控程序将硬件分为多个虚拟硬件系统,需要一个完整的操作系统支持改应用
容器:直接在操作系统上运行,所有容器共享资源,共享主机内核,将应用进程与系统其余部分隔离开来;需要的硬件资源少启动快;包括所有依赖项和配置设置
root用户运行容器成为rootful容器,普通用户运行容器是rootless容器(不可访问root用户保护的系统资源)
容器中安装含有多个服务的应用,根据需要启动和删除,有数据的需要配置持久化存储比如挂在目录操作
容器管理工具 单节点容器主机上运行
podman 管理容器和容器镜像
skopeo 检查、复制、删除和签署镜像 skopeo inspect 组合
buildah 创建容器镜像
容器镜像和注册表概念
1.通过容器镜像运行容器,容器镜像 打包了应用及其所有的依赖项
2.注册表是容器镜像的存储库,用户存储和检索容器镜像,使用前需要podman login 注册表 #先登录验证
红帽注册表 registry.redhat.io 基于第三方产品的容器 registry.connect.redhat.com 类似docker配置的加速器文件
UBI,通用基础镜像UBI,可以构架容器的初始层
podman login 注册表URL,如果不提供URL,会向默认配置的注册表进行身份验证
podman login 注册表URL --get-login 验证是否登录某一注册表
配置容器注册表
默认注册表位置:/etc/containers/registries.conf
unqualified-search-registries 如果指定镜像限定名,不会在此选项配置的注册表中搜所,如果不指定镜像的限定名,则会在此配置的注册表列表里面搜索,如下用例
podman pull ubi 会在配置的多个注册表URL中搜所符合的多条记录
podman pull registry.access.redhat.com/ubi8/ubi:latest 只匹配当前一条记录 推荐此种方式
[[registry]]标签内的两个重要参数
location=“registry.lab.example.com” 注册表的位置信息
insecure=true 可以使用未加密的http和tls连接及不受信任的证书来访问注册表
blocked=false 可以从该注册表下载镜像
建议使用非特权用户管理容器,可以$HOME/.config/containers目录中为容器创建注册表文件,此目录会覆盖/etc/containers/registries.conf文件中的设置
3.通过容器文件构建容器镜像,区别:刚刚是通过注册表查找已存在的容器镜像
也是一个文件,类似注册表文件,配置有所不同