云网牛站
所在位置:首页 > Linux教程 > 在Fedora Linux 33系统中安装Buildah的方法

在Fedora Linux 33系统中安装Buildah的方法

2021-04-25 11:14:57作者:李燕稿源:云网牛站

要在Fedora Linux 33系统中安装Buildah非常的简单,可连同Podman一起安装。

 

安装命令

其实在大多数Fedora Linux系统中预装了Podman和Buildah,如果您没有安装Podman或Buildah,请运行以下命令进行安装:

$ sudo dnf install -y podman buildah

参考:安装和使用Buildah构建OCI和Docker容器映像

注:安装了Podman 3.1.0和Buildah 1.2.0,当然,到您安装的时候,可能要比现在的版本高一级。

 

附1:设置

首先,创建一个项目目录,该目录将包含您的网站和容器文件:

$ mkdir smallerContainer

$ cd smallerContainer

$ mkdir files

$ touch files/index.html

制作一个简单的登录页面。对于此演示,您可以将以下HTML复制到index.html文件中:

<!doctype html>

<html lang="de">

<head>

<title>Container Page</title>

</head>

<body>

<header>

<h1>Container Page</h1>

</header>

<main>

<h2>Fedora</h2>

<ul>

<li><a href="https://getfedora.org">Fedora Project</a></li>

<li><a href="https://docs.fedoraproject.org/">Fedora Documentation</a></li>

<li><a href="https://fedoramagazine.org">Fedora Magazine</a></li>

<li><a href="https://communityblog.fedoraproject.org/">Fedora Community Blog</a></li>

</ul>

<h2>Podman</h2>

<ul>

<li><a href="https://podman.io">Podman</a></li>

<li><a href="https://docs.podman.io/">Podman Documentation</a></li>

<li><a href="https://github.com/containers/podman">Podman Code</a></li>

<li><a href="https://podman.io/blogs/">Podman Blog</a></li>

</ul>

<h2>Buildah</h2>

<ul>

<li><a href="https://buildah.io">Buildah</a></li>

<li><a href="https://github.com/containers/buildah">Buildah Code</a></li>

<li><a href="https://buildah.io/blogs/">Buildah Blog</a></li>

</ul>

<h2>Skopeo</h2>

<ul>

<li><a href="https://github.com/containers/skopeo">skopeo Code</a></li>

</ul>

<h2>CRI-O</h2>

<ul>

<li><a href="https://cri-o.io/">CRI-O</a></li>

<li><a href="https://github.com/cri-o/cri-o">CRI-O Code</a></li>

<li><a href="https://medium.com/cri-o">CRI-O Blog</a></li>

</ul>

</main>

</body>

</html>

(可选)在浏览器中测试上述index.html文件:

$ firefox files/index.html

最后,创建一个容器文件。该文件可以命名为Dockerfile或Containerfile:

$ touch Containerfile

现在,您应该拥有一个项目目录,该目录的文件系统布局类似于下图所示:

在Fedora Linux 33系统中安装Buildah的方法

 

附2:从头开始构建容器

当使用了容器文件和Podman来构建新映像后,还可以使用Buildah从头开始构建容器。Podman使用与Buildah相同的库来构建容器,但是Buildah被认为是纯粹的构建工具,Podman旨在替代Docker。

使用Buildah从头开始构建时,容器是空的,里面没有东西。必须从容器外部安装或复制所需的所有内容。幸运的是,使用Buildah相当容易。下面提供了一个小的Bash脚本,它将从头开始构建映像。您可以在终端中分别运行脚本中的每个命令,而不是运行脚本,以更好地了解正在执行的操作:

#!/usr/bin/env bash

set -o errexit

# Create a container

CONTAINER=$(buildah from scratch)

# Mount the container filesystem

MOUNTPOINT=$(buildah mount $CONTAINER)

# Install a basic filesystem and minimal set of packages, and httpd

dnf install -y --installroot $MOUNTPOINT  --releasever 33 glibc-minimal-langpack httpd --nodocs --setopt install_weak_deps=False

dnf clean all -y --installroot $MOUNTPOINT --releasever 33

# Cleanup

buildah unmount $CONTAINER

# Copy the website

buildah copy $CONTAINER 'files/*' '/var/www/html/'

# Expose Port 80/tcp

buildah config --port 80 $CONTAINER

# Start httpd

buildah config --cmd "httpd -DFOREGROUND" $CONTAINER

# Save the container to an image

buildah commit --squash $CONTAINER web-scratch

或者,可以通过将上面的脚本传递给Buildah来构建映像。请注意,不需要root用户特权:

$ buildah unshare bash web-scratch.sh

$ podman image ls

在Fedora Linux 33系统中安装Buildah的方法

如上图所示,最终image只有155MB。

 

相关主题

在Fedora操作系统上将pod与Podman一起使用

精选文章
热门文章