hello大家好😊
安装容器管理工具
要开始在系统上运行和管理容器,我们必须安装必要的命令行工具。有的系统会默认安装
使用yum命令安装container-tools模块。
container-tools 模块包括安装多个工具的软件包,包括我们接下来要使用的 podman和 skopeo
sudo yum module install container-tools
选择容器镜像和注册表
容器从容器镜像运行,它将应用与其所有依赖项一起打包。容器镜像是创建容器的蓝图。
容器注册表(registry)是用于存储和检索容器镜像的存储库。开发人员将容器镜像上传或推送到容器注册表中。从注册表中将这些容器镜像下载或提取到本地系统,可用于运行容器。其实容器注册表就是我们熟知的镜像仓库。我们可以选用公共仓库,也可以选用本地仓库。
❗ 注意容器镜像命名规定:
registry_name/user_name/image name:tagregistry_name 是存储镜像的注册表的名称。它通常是注册表的完全限定域;
User_name 表示镜像所属的用户或组织;
Image_name 是镜像名称,它在用户命名空间中必须唯一
tag(可选) 标识镜像版本。如果镜像名称不包含镜像标签,则假定为 latest。
登录容器注册表
使用
podman login
命令登录容器注册表
系统会要求你输入Username和Password
示例:
podman login registry.lab.example.com
提取容器镜像
使用
podman pull 容器镜像完全限定名称
命令,以完全限定名称从注册表中提取容器镜像
当然,我们可以在提取镜像前先看看注册表中有没有我们想要的镜像。可以使用 podman search 镜像名称
去查看
示例:
podman search httpd-24
podman pull registry.lab.example.com/rhel8/httpd-24:latest
Podman会将镜像存储在本地,我们可以使用 podman images
命令列出这些镜像,包括它们的TAG(标签)、IMAGE ID(镜像ID) 、SIZE(镜像大小)等等
podman images
从镜像运行容器
使用
podman run 容器镜像完全限定名称
命令从容器镜像运行容器。执行 podman run 命令时,将从容器镜像创建并启动新容器
该命令有一些选项可供选择。常用的比如:
- -it (–interactive和–pseudo-tty)选项会为容器分配一个中断,并且我们可以与容器交互。我们往往会要求生成**/bin/bash**终端
- -d(–detach) 选项让容器在后台运行,并会显示容器ID
- –name 选项设置容器名称。因为引用容器时,Podman识别容器名称或生成的容器ID。如果 podman run 命令不包含容器名称,Podman 将生成唯一的随机名称
- -v 选项用于指定容器与主机之间的文件或目录的挂载关系。格式为
-v 主机上的目录或文件:容器上的目录或文件
示例1:
podman run -it --name=rhel8 registry.access,redhat,com/ubi8/ubi /bin/bash
上述命令是使用 Podman 从registry.access.redhat.com/ubi8/ubi 镜像创建名为“rhel8的容器”,并且将以交互式的方式进入容器的 Bash shell
示例2:
podman run -d --name logserver -v /home/contsvc/container_journal:/var/log/journal:Z registry.lab.example.com/rhel8/rsyslog-custom-cert:latest
上述命令是使用 Podman 从registry.lab.example.com/rhel8/rsyslog-custom-cert:latest 镜像创建名为“logserver” 的容器,该容器会在后台运行;并且将主机系统上的 /home/contsvc/container_journal 目录挂载到容器内的/var/log/journal目录。:Z 表示将SELinux安全标签设置为挂载点
也可在容器中运行快速命令,而无需与之交互,然后在命令完成后删除容器。为此,我们使用podman run --rm,后跟容器镜像和命令
示例:
podman run --rm registry.access.redhat.com/ubi8/ubi cat /etc/os-release
上述命令是使用Podman从 registry.access.redhat.com/ubi8/ubi 容器镜像中创建一个容器,并在容器中运行 cat /etc/os-release 命令,最后在命令退出时删除容器
感谢 💖
好啦,这次的分享就到这里,感谢大家看到这里🤞