project atomic 通過他們在 open container initiative(oci)上的努力創造了乙個名為 buildah 的偉大工具。buildah 能幫助建立、構建和更新,它支援 docker 容器映象以及 oci 相容映象。
buildah 處理構建容器映象時無需安裝完整的容器執行時或守護程序。這對建立容器的持續整合和持續交付管道尤其有用。
buildah 使容器的檔案系統可以直接供構建主機使用。這意味著構建工具在主機上可用就行,而不需要在容器映象中可用,從而使構建更快速,映象更小,更安全。buildah 有 centos、fedora 和 debian 的軟體包。
安裝 buildah
從 fedora 26 開始 buildah 可以使用dnf
進行安裝。
$
sudo
dnf install buildah
-y
buildah
的當前版本為 0.16,可以通過以下命令顯示。
$ buildah
--version
基本命令
構建容器映象的第一步是獲取基礎映象,這是通過 dockerfile 中的from
語句完成的。buildah 以類似的方式處理這個。
$
sudo
buildah
from
fedora
該命令將拉取 fedora 的基礎映象並儲存在主機上。通過執行以下操作可以檢查主機上可用的映象。
$
sudo
buildah images
image id image name created at size
9110ae7f579f
docker.io
/library
/fedora
:latest
mar7
,201820:
51234.7
mb
在拉取基礎映象後,有乙個該映象的執行容器例項,這是乙個「工作容器」。
以下命令顯示正在執行的容器。
$
sudo
buildah containers
container id builder image id image name
container name
6112db586ab9
*9110ae7f579f
docker.io
/library
/fedora
:latest fedora
-working
-container
buildah 還提供了乙個非常有用的命令來停止和刪除當前正在執行的所有容器。
$
sudo
buildah
rm--
all
完整的命令列表可以使用--help
選項。
$ buildah
--help
構建乙個 apache web 伺服器容器映象
讓我們看看如何使用 buildah 在 fedora 基礎映象上安裝 apache web 伺服器,然後複製乙個可供服務的自定義index.html
。
首先讓我們建立自定義的index.html
。
$
echo
"hello fedora magazine !!!"
>
index
.html
然後在正在執行的容器中安裝 httpd 包。
讓我們將index.html
複製到/var/www/html/
。
$
sudo
buildah copy fedora
-working
-container index
.html
/var
/www
/html
/index
.html
然後配置容器入口點以啟動 httpd。
現在為了使「工作容器」可用,commit
命令將容器儲存到映象。
$
sudo
buildah commit fedora
-working
-container hello
-fedora
-magazine
hello-fedora-magazine 映象現在可用,並且可以推送到倉庫以供使用。
$
sudo
buildah images
image id image name created
at size
9110ae7f579f
docker.io
/library
/fedora
:latest
mar7,
201822:
51234.7
mb
49bd5ec5be71
docker.io
/library
/hello
-fedora
-magazine
:latest
apr27,
201811:
01427.7
mb
通過執行以下步驟,還可以使用 buildah 來測試此映象。
$
sudo
buildah
from
--name
=hello
-magazine docker.io
/library
/hello
-fedora
-magazine
$
sudo
buildah run hello
-magazine
訪問 http://localhost 將顯示 「hello fedora magazine !!!」
原文發布時間為:2018-05-21
buildah 用Buildah建立小容器
buildah 在另一家科技公司工作多年後,我最近加入了red hat。在上乙份工作中,我開發了許多成功但專有的不同軟體產品。在法律上,我們不僅被迫不在公司外部共享軟體,而且我們甚至經常不在公司內部共享軟體。當時,這對我完全有意義 公司花了時間,精力和預算來開發該軟體,因此他們應該保護並要求獲得它的...
使用 Buildah 建立小體積的容器
我最近加入了 red hat,在這之前我在另外一家科技公司工作了很多年。在我的上乙份工作崗位上,我開發了不少不同型別的軟體產品,這些產品是成功的,但都有版權保護。不僅法規限制了我們不能在公司外將軟體共享,而且我們在公司內部也基本不進行共享。在那時,我覺得這很有道理 公司花費了時間 精力和預算用於開發...
使用Dockerfile構建容器
通過dockerfile構建docker容器,可以只依賴基礎映象,此文以ubuntu作為基礎映象。touch dockerfile from ubuntu 14.04 maintainer tony env refreshed at 2017 05 08run apt get update run ...