欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    編譯自: https://opensource.com/article/18/6/getting-started-buildah

    作者: Chris Collins

    譯者: Andy Song

    Buildah 提供一種靈活、可腳本編程的方式,來(lái)使用你熟悉的工具創(chuàng)建精簡(jiǎn)、高效的容器鏡像。

    Buildah 是一個(gè)命令行工具,可以方便、快捷的構(gòu)建與 開放容器標(biāo)準(zhǔn) (Open Container Initiative)(OCI)兼容的容器鏡像,這意味著其構(gòu)建的鏡像與 Docker 和 Kubernetes 兼容。該工具可作為 Docker 守護(hù)進(jìn)程 docker build 命令(即使用傳統(tǒng)的 Dockerfile 構(gòu)建鏡像)的一種 簡(jiǎn)單(drop-in)替換,而且更加靈活,允許構(gòu)建鏡像時(shí)使用你擅長(zhǎng)的工具。Buildah 可以輕松與腳本集成并生成 流水線(pipeline),最好之處在于構(gòu)建鏡像不再需要運(yùn)行容器守護(hù)進(jìn)程(LCTT 譯注:這里主要是指 Docker 守護(hù)進(jìn)程)。

    docker build 的簡(jiǎn)單替換

    目前你可能使用 Dockerfile 和 docker build 命令構(gòu)建鏡像,那么你可以馬上使用 Buildah 進(jìn)行替代。Buildah 的 build-using-dockerfile (或 bud)子命令與 docker build 基本等價(jià),因此可以輕松的與已有腳本結(jié)合或構(gòu)建流水線。

    類似我的上一篇關(guān)于 Buildah 的 文章 ,我也將以使用源碼安裝 “GNU Hello” 為例進(jìn)行說(shuō)明,對(duì)應(yīng)的 Dockerfile 文件如下:

    FROM fedora:28

    LABEL maintainer Chris Collins <collins.christopher@gmail.com>

    RUN dnf install -y tar gzip gcc make \

    && dnf clean all

    ADD http://ftpmirror.gnu.org/hello/hello-2.10.tar.gz /tmp/hello-2.10.tar.gz

    RUN tar xvzf /tmp/hello-2.10.tar.gz -C /opt

    WORKDIR /opt/hello-2.10

    RUN ./configure

    RUN make

    RUN make install

    RUN hello -v

    ENTRYPOINT "/usr/local/bin/hello"

    使用 Buildah 從 Dockerfile 構(gòu)建鏡像也很簡(jiǎn)單,使用 buildah bud -t hello . 替換 docker build -t hello . 即可:

    [chris@krang] $ sudo buildah bud -t hello .

    STEP 1: FROM fedora:28

    Getting image source signatures

    Copying blob sha256:e06fd16225608e5b92ebe226185edb7422c3f581755deadf1312c6b14041fe73

    81.48 MiB / 81.48 MiB [====================================================] 8s

    Copying config sha256:30190780b56e33521971b0213810005a69051d720b73154c6e473c1a07ebd609

    2.29 KiB / 2.29 KiB [======================================================] 0s

    Writing manifest to image destination

    Storing signatures

    STEP 2: LABEL maintainer Chris Collins <collins.christopher@gmail.com>

    STEP 3: RUN dnf install -y tar gzip gcc make && dnf clean all

    <考慮篇幅,略去后續(xù)輸出>

    鏡像構(gòu)建完畢后,可以使用 buildah images 命令查看這個(gè)新鏡像:

    [chris@krang] $ sudo buildah images

    IMAGE ID IMAGE NAME CREATED AT SIZE

    30190780b56e docker.io/library/fedora:28 Mar 7, 2018 16:53 247 MB

    6d54bef73e63 docker.io/library/hello:latest May 3, 2018 15:24 391.8 MB

    新鏡像的標(biāo)簽為 hello:latest,我們可以將其推送至遠(yuǎn)程鏡像倉(cāng)庫(kù),可以使用 CRI-O 或其它 Kubernetes CRI 兼容的運(yùn)行時(shí)來(lái)運(yùn)行該鏡像,也可以推送到遠(yuǎn)程倉(cāng)庫(kù)。如果你要測(cè)試對(duì) Docker build 命令的替代性,你可以將鏡像拷貝至 docker 守護(hù)進(jìn)程的本地鏡像存儲(chǔ)中,這樣 Docker 也可以使用該鏡像。使用 buildah push 可以很容易的完成推送操作:

    [chris@krang] $ sudo buildah push hello:latest docker-daemon:hello:latest

    Getting image source signatures

    Copying blob sha256:72fcdba8cff9f105a61370d930d7f184702eeea634ac986da0105d8422a17028

    247.02 MiB / 247.02 MiB [==================================================] 2s

    Copying blob sha256:e567905cf805891b514af250400cc75db3cb47d61219750e0db047c5308bd916

    144.75 MiB / 144.75 MiB [==================================================] 1s

    Copying config sha256:6d54bef73e638f2e2dd8b7bf1c4dfa26e7ed1188f1113ee787893e23151ff3ff

    1.59 KiB / 1.59 KiB [======================================================] 0s

    Writing manifest to image destination

    Storing signatures

    [chris@krang] $ sudo docker images | head -n2

    REPOSITORY TAG IMAGE ID CREATED SIZE

    docker.io/hello latest 6d54bef73e63 2 minutes ago 398 MB

    [chris@krang] $ sudo docker run -t hello:latest

    Hello, world!

    若干差異

    與 Docker build 不同,Buildah 不會(huì)自動(dòng)的將 Dockerfile 中的每條指令產(chǎn)生的變更提到新的 分層(layer)中,只是簡(jiǎn)單的每次從頭到尾執(zhí)行構(gòu)建。類似于 自動(dòng)化(automation)和 流水線構(gòu)建(build pipeline),這種 無(wú)緩存構(gòu)建(non-cached)方式的好處是可以提高構(gòu)建速度,在指令較多時(shí)尤為明顯。從 自動(dòng)部署(automated deployment)或 持續(xù)交付(continuous delivery)的視角來(lái)看,使用這種方式可以快速的將新變更落實(shí)到生產(chǎn)環(huán)境中。

    但從實(shí)際角度出發(fā),緩存機(jī)制的缺乏對(duì)鏡像開發(fā)不利,畢竟緩存層可以避免一遍遍的執(zhí)行構(gòu)建,從而顯著的節(jié)省時(shí)間。自動(dòng)分層只在 build-using-dockerfile 命令中生效。但我們?cè)谙旅鏁?huì)看到,Buildah 原生命令允許我們選擇將變更提交到硬盤的時(shí)間,提高了開發(fā)的靈活性。

    Buildah 原生命令

    Buildah 真正 有趣之處在于它的原生命令,你可以在容器構(gòu)建過(guò)程中使用這些命令進(jìn)行交互。相比與使用 build-using-dockerfile/bud 命令執(zhí)行每次構(gòu)建,Buildah 提供命令讓你可以與構(gòu)建過(guò)程中的臨時(shí)容器進(jìn)行交互。(Docker 也使用臨時(shí)或 中間 (intermediate)容器,但你無(wú)法在鏡像構(gòu)建過(guò)程中與其交互。)

    還是使用 “GNU Hello” 為例,考慮使用如下 Buildah 命令構(gòu)建的鏡像:

    #!/usr/bin/env bash

    set -o errexit

    # Create a container

    container=$(buildah from fedora:28)

    # Labels are part of the "buildah config" command

    buildah config --label maintainer="Chris Collins <collins.christopher@gmail.com>" $container

    # Grab the source code outside of the container

    curl -sSL http://ftpmirror.gnu.org/hello/hello-2.10.tar.gz -o hello-2.10.tar.gz

    buildah copy $container hello-2.10.tar.gz /tmp/hello-2.10.tar.gz

    buildah run $container dnf install -y tar gzip gcc make

    buildah run $container dnf clean all

    buildah run $container tar xvzf /tmp/hello-2.10.tar.gz -C /opt

    # Workingdir is also a "buildah config" command

    buildah config --workingdir /opt/hello-2.10 $container

    buildah run $container ./configure

    buildah run $container make

    buildah run $container make install

    buildah run $container hello -v

    # Entrypoint, too, is a “buildah config” command

    buildah config --entrypoint /usr/local/bin/hello $container

    # Finally saves the running container to an image

    buildah commit --format docker $container hello:latest

    我們可以一眼看出這是一個(gè) Bash 腳本而不是 Dockerfile?;?Buildah 的原生命令,可以輕易的使用任何腳本語(yǔ)言或你擅長(zhǎng)的自動(dòng)化工具編寫腳本。形式可以是 makefile、Python 腳本或其它你擅長(zhǎng)的類型。

    這個(gè)腳本做了哪些工作呢?首先,Buildah 命令 container=$(buildah from fedora:28) 基于 fedora:28 鏡像創(chuàng)建了一個(gè)正在運(yùn)行的容器,將容器名(buildah from 命令的返回值)保存到變量中,便于后續(xù)使用。后續(xù)所有命令都是有 $container 變量指明需要操作的容器。這些命令的功能大多可以從名稱看出:buildah copy 將文件拷貝至容器,buildah run 會(huì)在容器中執(zhí)行命令??梢院苋菀椎膶⑸鲜雒钆c Dockerfile 中的指令對(duì)應(yīng)起來(lái)。

    最后一條命令 buildah commit 將容器提交到硬盤上的鏡像中。當(dāng)不使用 Dockerfile 而是使用 Buildah 命令構(gòu)建鏡像時(shí),你可以使用 commit 命令決定何時(shí)保存變更。在上例中,所有的變更是一起提交的;但也可以增加中間提交,讓你可以選擇作為起點(diǎn)的 緩存點(diǎn)(cache point)。(例如,執(zhí)行完 dnf install 命令后將變更緩存到硬盤是特別有意義的,一方面因?yàn)樵摬僮骱臅r(shí)較長(zhǎng),另一方面每次執(zhí)行的結(jié)果也確實(shí)相同。)

    掛載點(diǎn),安裝目錄以及 chroot

    另一個(gè)可以大大增加構(gòu)建鏡像靈活性的 Buildah 命令是 buildah mount,可以將容器的根目錄掛載到你主機(jī)的一個(gè)掛載點(diǎn)上。例如:

    [chris@krang] $ container=$(sudo buildah from fedora:28)

    [chris@krang] $ mountpoint=$(sudo buildah mount ${container})

    [chris@krang] $ echo $mountpoint

    /var/lib/containers/storage/overlay2/463eda71ec74713d8cebbe41ee07da5f6df41c636f65139a7bd17b24a0e845e3/merged

    [chris@krang] $ cat ${mountpoint}/etc/redhat-release

    Fedora release 28 (Twenty Eight)

    [chris@krang] $ ls ${mountpoint}

    bin dev home lib64 media opt root sbin sys usr

    boot etc lib lost+found mnt proc run srv tmp var

    這太棒了,你可以通過(guò)與掛載點(diǎn)交互對(duì)容器鏡像進(jìn)行修改。這允許你使用主機(jī)上的工具進(jìn)行構(gòu)建和安裝軟件,不用將這些構(gòu)建工具打包到容器鏡像本身中。例如,在我們上面的 Bash 腳本中,我們需要安裝 tar、Gzip、GCC 和 make,在容器內(nèi)編譯 “GNU Hello”。如果使用掛載點(diǎn),我仍使用同樣的工具進(jìn)行構(gòu)建,但下載的壓縮包和 tar、Gzip 等 RPM 包都在主機(jī)而不是容器和生成的鏡像內(nèi):

    #!/usr/bin/env bash

    set -o errexit

    # Create a container

    container=$(buildah from fedora:28)

    mountpoint=$(buildah mount $container)

    buildah config --label maintainer="Chris Collins <collins.christopher@gmail.com>" $container

    curl -sSL http://ftpmirror.gnu.org/hello/hello-2.10.tar.gz \

    -o /tmp/hello-2.10.tar.gz

    tar xvzf src/hello-2.10.tar.gz -C ${mountpoint}/opt

    pushd ${mountpoint}/opt/hello-2.10

    ./configure

    make

    make install DESTDIR=${mountpoint}

    popd

    chroot $mountpoint bash -c "/usr/local/bin/hello -v"

    buildah config --entrypoint "/usr/local/bin/hello" $container

    buildah commit --format docker $container hello

    buildah unmount $container

    在上述腳本中,需要提到如下幾點(diǎn):

    1. curl 命令將壓縮包下載到主機(jī)中,而不是鏡像中;
    2. (主機(jī)中的) tar 命令將壓縮包中的源代碼解壓到容器的 /opt 目錄;
    3. configure,make 和 make install 命令都在主機(jī)的掛載點(diǎn)目錄中執(zhí)行,而不是在容器內(nèi);
    4. 這里的 chroot 命令用于將掛載點(diǎn)本身當(dāng)作根路徑并測(cè)試 "hello" 是否正常工作;類似于前面例子中用到的 buildah run 命令。

    這個(gè)腳本更加短小,使用大多數(shù) Linux 愛(ài)好者都很熟悉的工具,最后生成的鏡像也更?。](méi)有 tar 包,沒(méi)有額外的軟件包等)。你甚至可以使用主機(jī)系統(tǒng)上的包管理器為容器安裝軟件。例如,(出于某種原因)你希望安裝 GNU Hello 的同時(shí)在容器中安裝 NGINX :

    [chris@krang] $ mountpoint=$(sudo buildah mount ${container})

    [chris@krang] $ sudo dnf install nginx --installroot $mountpoint

    [chris@krang] $ sudo chroot $mountpoint nginx -v

    nginx version: nginx/1.12.1

    在上面的例子中,DNF 使用 --installroot 參數(shù)將 NGINX 安裝到容器中,可以通過(guò) chroot 進(jìn)行校驗(yàn)。

    快來(lái)試試吧!

    Buildah 是一種輕量級(jí)、靈活的容器鏡像構(gòu)建方法,不需要在主機(jī)上運(yùn)行完整的 Docker 守護(hù)進(jìn)程。除了提供基于 Dockerfile 構(gòu)建容器的開箱即用支持,Buildah 還可以很容易的與腳本或你喜歡的構(gòu)建工具相結(jié)合,特別是可以使用主機(jī)上已有的工具構(gòu)建容器鏡像。Buildah 生成的容器體積更小,更便于網(wǎng)絡(luò)傳輸,占用更小的存儲(chǔ)空間,而且潛在的受攻擊面更小??靵?lái)試試吧!

    [閱讀相關(guān)的故事, 使用 Buildah 創(chuàng)建小體積的容器 ]


    via: https://opensource.com/article/18/6/getting-started-buildah

    作者: Chris Collins 選題: lujun9972 譯者: pinewall 校對(duì): wxy

    本文由 LCTT 原創(chuàng)編譯, Linux中國(guó) 榮譽(yù)推出

    點(diǎn)擊“了解更多”可訪問(wèn)文內(nèi)鏈接

    今日,OpenBSD社區(qū)發(fā)布了OpenSSH最新版本8.6。OpenSSH是100%完整的SSH協(xié)議2.0實(shí)現(xiàn),也是目前運(yùn)行最廣泛的服務(wù)器端和客戶端,是GNU/Linux默認(rèn)安裝和啟用的服務(wù),其組件中也包括了,更加安全的加密的sftp客戶端和服務(wù)器。



    重要更改

    目前情況下,對(duì)SHA-1算法的碰撞攻擊的成本已經(jīng)低于5萬(wàn)美元(約合人民幣32萬(wàn)五)。

    在SSH協(xié)議中,“ssh-rsa”簽名方案使用SHA-1哈希算法與RSA公鑰算法結(jié)合使用。 在OpenSSH 8.6中將會(huì)禁用該組合算法的簽名方案,使用該組合簽名方案的證書和客戶端將不能認(rèn)證通過(guò)。在SSH協(xié)議中,密鑰支持多種算法進(jìn)行簽名。其中“ssh-rsa”密鑰可以使用“rsa-sha2-256”(RSA/SHA256)進(jìn)行簽名。更好可選方案包括:

    RFC8332 RSA SHA-2簽名算法rsa-sha2-256/512。該算法的優(yōu)點(diǎn)是使用與 “ssh-rsa”完全一致,但使用安全的SHA-2哈希算法。rsa-sha2-256/512算法已經(jīng)自O(shè)penSSH 7.2開始支持,默認(rèn)支持。

    RFC8709 ssh-ed25519簽名算法也已經(jīng)被支持,自O(shè)penSSH 6.5版本開始在中使用。

    RFC5656 ECDSA算法:ecdsa-sha2-nistp256/384/521。自O(shè)penSSH 5.x版本被支持。

    可以用一下命令行手動(dòng)檢查服務(wù)器是否使用弱ssh-rsa公鑰算法:

    ssh -oHostKeyAlgorithms=-ssh-rsa user@host

    如果主機(jī)密鑰驗(yàn)證失敗,并且沒(méi)有其他受支持的主機(jī)密鑰類型可用,則該主機(jī)上的服務(wù)器軟件應(yīng)為升級(jí)。

    OpenSSH最新版本中已經(jīng)默認(rèn)啟用了UpdateHostKeys選項(xiàng),幫助自動(dòng)遷移到更好的算法實(shí)現(xiàn)用戶登陸。

    安全改進(jìn)

    OpenSSH 8.5引入了LogVerbose關(guān)鍵字。用于日志記錄的一組模式,啟用了該選項(xiàng)后將實(shí)現(xiàn)在低特權(quán)沙盒sshd進(jìn)程中運(yùn)行的代碼,日志消息可以利用printf格式字符串構(gòu)造指定為低特權(quán)代碼。成功利用低特權(quán)的攻擊進(jìn)程可以用來(lái)逃避OpenSSH的沙箱,提權(quán)到高特權(quán)進(jìn)程。

    注意:該漏洞利用,在實(shí)踐中是極不可能,因?yàn)長(zhǎng)ogVerbose選項(xiàng)默認(rèn)情況不會(huì)啟動(dòng),只在調(diào)試過(guò)程中使用。

    其他功能更新

    sftp-server:添加新的limits@openssh-com協(xié)議擴(kuò)展允許客戶端發(fā)現(xiàn)各種服務(wù)器限制,包括最大數(shù)據(jù)包大小和最大讀取/寫入長(zhǎng)度。

    sftp:使用新的limits@openssh-com擴(kuò)展名在客戶端中選擇更好的傳輸長(zhǎng)度。

    sshd:在sshd_config中添加ModuliFile關(guān)鍵字以指定包含DH-GEX組的moduli文件的位置。

    單元測(cè)試:添加了TEST_SSH_ELAPSED_TIMES環(huán)境變量,可以用于在測(cè)試信息中打印每次測(cè)試的經(jīng)過(guò)時(shí)間(以秒為單位)。

    Bug修復(fù)

    *ssh_config:同步中的CASignatureAlgorithms列表當(dāng)前默認(rèn)的手冊(cè)頁(yè)。

    ssh:確保退出前調(diào)用pkcs11_del_provider()。

    ssh,sshd:修復(fù)了字符串->argv轉(zhuǎn)換中的問(wèn)題。多反斜杠未正確引用,導(dǎo)致引號(hào)中的空格字符串的中間被錯(cuò)誤地分割了的問(wèn)題。

    ssh:被信號(hào)殺死時(shí)返回非零退出狀態(tài);

    sftp-server:增加變量SSH2_FXP_READ以匹配最大數(shù)目數(shù)據(jù)包大小。還可以處理未明確顯示的零長(zhǎng)度讀取 規(guī)格禁止。

    可移植性

    sshd:讀取網(wǎng)絡(luò)套接字(例如EINTR,EAGAIN)錯(cuò)誤時(shí),錯(cuò)誤退出的問(wèn)題。

    創(chuàng)建專用的contrib/gnome-ssk-askpass3.c源,不使用與GNOME2相同的文件來(lái)構(gòu)建。使GNOME3 gdk_seat_grab()可以更好地管理鍵盤/鼠標(biāo)/服務(wù)器抓取與Wayland的兼容性。

    修復(fù)可移植性其他構(gòu)建錯(cuò)誤(bz3293 bz3292 bz3291 bz3278)。

    sshd:軟禁止Linux中的fstatat64 syscall seccomp-bpf沙箱。

    文件校驗(yàn)哈希

    下載安裝時(shí)候請(qǐng)對(duì)下載文件校對(duì)官方哈希碼以保證下載包的安全性和完整性。

    openssh-8.6.tar.gz(適用于BSD)

    SHA1 a3e93347eed6296faaaceb221e8786391530fccb

    SHA256 ihmgdEgKfCBRpC0qzdQRwYownrpBf+rsihvk4Rmim8M=

    openssh-8.6p1.tar.gz(適用于Linxu)

    SHA1 8f9f0c94317baeb97747d6258f3997b4542762c0

    SHA256 w+bk2hYhdiyFDQO0fu0eSN/0zJYI3etUcgKiNN+O164=

    注意,SHA256簽名是base64編碼的,而不是默認(rèn)十六進(jìn)制(這是大多數(shù)校驗(yàn)和工具的默認(rèn)設(shè)置)。

    PGP校驗(yàn):請(qǐng)從官方網(wǎng)站/pub/OpenBSD/OpenSSH/RELEASE_KEY.asc 在線校驗(yàn)。

網(wǎng)站首頁(yè)   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號(hào):冀ICP備2024067069號(hào)-3 北京科技有限公司版權(quán)所有