安装容器管理工具
在系统上运行和管理容器前,必须先安装必要的命令行工具。
使用yum命令安装container-tools模块。
yum module install container-tools
container-tools模块包括安装多个工具的软件包,包括运行容器所需的podman和skopeo工具。
选择容器镜像和注册表
容器注册表是用于存储和检索容器镜像的存储库。开发人员将容器镜像上传或推送到容器注册表,从注册表中拉取容器镜像到本地系统,可用于运行容器。
红帽通过两个主容器分发认证容器镜像,使用登录凭据可访问这两个注册表。
registry.redhat.io : 适用于基于官方红帽产品的容器。
registry.connect.redhat.com : 适用于基于第三方产品的容器。
可以通过https://access.redhat.com/containers搜索注册表的认证内容。
容器命名约定
容器镜像基于以下完全限定镜像名称语法命名:
registry_name/user_name/image_name:tag
registry_name 存储镜像注册表的名称,通常是注册表的完全限定域名。
user_name 镜像所属的用户或组织。
image_name 用户命名空间中必须唯一。
tag 镜像版本,常用假定latest。
运行容器
在本地系统上运行容器前,必须先拉取容器镜像。使用Podman从注册表中拉取镜像,使用完全限定镜像名称。podman pull可以从注册表拉取指定的镜像保存在本地。
podman pull registry.access.redhat.com/ubi8/ubi:latest
podman images
podman将镜像存储在本地,podman images可以列出镜像。命令的输出显示标签、镜像ID等信息。
要从镜像运行容器,使用podman run命令,此命令将从容器镜像创建并启动新容器。-it选项与容器交互,为容器分配一个终端,允许键盘输入。
podman run -it registry.access.redhat.com/ubi8/ubi:latest
#-t相当于--tty,pseudo-tty伪终端将分配给容器
#-i与--interactive相同,接收标准输入
#-d或--detach,表示容器在后台运行,已分离
若使用完全限定镜像名称运行容器,但镜像尚未存储到本地,podman run命令将从注册表中拉取镜像,然后运行。
引用容器时podman识别容器名称或生成容器ID,可使用--name选项指定容器名称
podman run -it --name=rhel8 registry.access.redhat.com/ubi8/ubi /bin/bash
#此命令将在容器内启动bash终端,以交互式运行命令
若要在容器中快速运行命令,不与之交互,在命令完成后删除容器,可使用podman run --rm,后跟容器镜像和命令。
podman run --rm -it --name=rhel8 registry.access.redhat.com/ubi8/ubi\
cat /etc/os-relese
分析容器隔离
容器提供资源的运行时隔离。利用Linux命令空间为资源(进程、网络通信和卷)提供独立的隔离环境,容器内运行的进程与主机上的所有其他进程相隔离。
可使用ps aux命令分别在容器和主机上运行,得到不同结果;并且在容器和主机上使用id命令查看的用户名的ID也不同。