18.9. 在 Podman 容器内构建容器
您可以使用 Podman 在容器中运行容器。本例演示了如何使用 Podman 在此容器内构建并运行另一个容器。容器将运行"Moon-buggy",这是一个基于文本的简单游戏。
先决条件
-
container-tools
元数据包已安装。 登陆到 registry.redhat.io 注册表:
# podman login registry.redhat.io
流程
根据
registry.redhat.io/rhel9/podman
镜像运行容器:# podman run --privileged --name podman_container -it \ registry.redhat.io/rhel9/podman /bin/bash
-
根据
registry.redhat.io/rhel9/podman
镜像,运行名为podman_container
的 outer 容器。 -
--it
选项指定您要在容器内运行交互式 bash shell。 -
--privileged
选项禁用将容器与主机隔离的安全功能。
-
根据
在
podman_container
容器中创建一个Containerfile
:# vi Containerfile FROM registry.access.redhat.com/ubi9/ubi RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm RUN dnf -y install moon-buggy && dnf clean all CMD ["/usr/bin/moon-buggy"]
Containerfile
中的命令会导致以下构建命令:-
从
registry.access.redhat.com/ubi9/ubi
镜像构建容器。 -
安装
epel-release-latest-8.noarch.rpm
软件包。 -
安装
moon-buggy
软件包。 - 设置容器命令。
-
从
使用
Containerfile
构建名为moon-buggy
的新容器镜像:# podman build -t moon-buggy .
可选:列出所有镜像:
# podman images REPOSITORY TAG IMAGE ID CREATED SIZE localhost/moon-buggy latest c97c58abb564 13 seconds ago 1.67 GB registry.access.redhat.com/ubi9/ubi latest 4199acc83c6a 132seconds ago 213 MB
运行一个基于
moon-buggy
容器的新容器:# podman run -it --name moon moon-buggy
可选:标记
moon-buggy
镜像:# podman tag moon-buggy registry.example.com/moon-buggy
可选:将
moon-buggy
镜像推送到 registry:# podman push registry.example.com/moon-buggy
其他资源