podman容器工具的具體使用
podman簡(jiǎn)介
Podman是一個(gè)開(kāi)源項(xiàng)目,可在大多數(shù)Linux平臺(tái)上使用并開(kāi)源在GitHub上。Podman是一個(gè)無(wú)守護(hù)進(jìn)程的容器引擎,用于在Linux系統(tǒng)上開(kāi)發(fā),管理和運(yùn)行Open Container Initiative(OCI)容器和容器鏡像。Podman提供了一個(gè)與Docker兼容的命令行前端,它可以簡(jiǎn)單地作為Docker cli,簡(jiǎn)單地說(shuō)你可以直接添加別名:alias docker = podman來(lái)使用podman。
Podman控制下的容器可以由root用戶運(yùn)行,也可以由非特權(quán)用戶運(yùn)行。Podman管理整個(gè)容器的生態(tài)系統(tǒng),其包括pod,容器,容器鏡像,和使用libpod library的容器卷。Podman專注于幫助您維護(hù)和修改OCI容器鏡像的所有命令和功能,例如拉取和標(biāo)記。它允許您在生產(chǎn)環(huán)境中創(chuàng)建,運(yùn)行和維護(hù)從這些映像創(chuàng)建的容器。
官網(wǎng):https://podman.io/
安裝文檔:https://github.com/containers/libpod/blob/master/install.md
配置參考:https://github.com/containers/image/blob/master/docs/containers-registries.conf.5.md
Podman和Docker的主要區(qū)別是什么?
- dockers在實(shí)現(xiàn)CRI的時(shí)候,它需要一個(gè)守護(hù)進(jìn)程,其次需要以root運(yùn)行,因此這也帶來(lái)了安全隱患。
- podman不需要守護(hù)程序,也不需要root用戶運(yùn)行,從邏輯架構(gòu)上,比docker更加合理。
- 在docker的運(yùn)行體系中,需要多個(gè)daemon才能調(diào)用到OCI的實(shí)現(xiàn)RunC。
- 在容器管理的鏈路中,Docker Engine的實(shí)現(xiàn)就是dockerd
- daemon,它在linux中需要以root運(yùn)行,dockerd調(diào)用containerd,containerd調(diào)用containerd-shim,然后才能調(diào)用runC。顧名思義shim起的作用也就是“墊片”,避免父進(jìn)程退出影響容器的運(yùn)訓(xùn)
- podman直接調(diào)用OCI,runtime(runC),通過(guò)common作為容器進(jìn)程的管理工具,但不需要dockerd這種以root身份運(yùn)行的守護(hù)進(jìn)程。
- 在podman體系中,有個(gè)稱之為common的守護(hù)進(jìn)程,其運(yùn)行路徑通常是/usr/libexec/podman/conmon,它是各個(gè)容器進(jìn)程的父進(jìn)程,每個(gè)容器各有一個(gè),common的父則通常是1號(hào)進(jìn)程。podman中的common其實(shí)相當(dāng)于docker體系中的containerd-shim。
podman安裝使用
使用centos官方y(tǒng)um源進(jìn)行安裝
$ yum install -y podman $ podman version Version: ? ? ? ? ? ?1.4.4 RemoteAPI Version: ?1 Go Version: ? ? ? ? go1.10.3 OS/Arch: ? ? ? ? ? ?linux/amd64
配置鏡像加速
這里使用阿里云鏡像加速器
cp /etc/containers/registries.conf{,.bak} cat > /etc/containers/registries.conf << EOF unqualified-search-registries = ["docker.io"] [[registry]] prefix = "docker.io" location = "uyah70su.mirror.aliyuncs.com" EOF
拉取鏡像
$ podman pull centos Trying to pull docker.io/library/centos...Getting image source signatures Copying blob 8ba884070f61 done Copying config 9f38484d22 done Writing manifest to image destination Storing signatures 9f38484d220fa527b1fb19747638497179500a1bed8bf0498eb788229229e6e1
運(yùn)行容器
$ podman images REPOSITORY ? ? ? ? ? ? ? ? TAG ? ? ?IMAGE ID ? ? ? CREATED ? ? ? ?SIZE docker.io/library/centos ? latest ? 9f38484d220f ? 4 months ago ? 209 MB $ podman run -itd --name test centos sleep 3600 1fc033bb22096008049709d70869d54e3fa9e4d72c6d098f4b5601fd6747a9b9 $ podman ps CONTAINER ID ?IMAGE ? ? ? ? ? ? ? ? ? ? ? ? ? ?COMMAND ? ? CREATED ? ? ? ?STATUS ? ? ? ? ? ?PORTS ?NAMES 1fc033bb2209 ?docker.io/library/centos:latest ?sleep 3600 ?7 seconds ago ?Up 6 seconds ago ? ? ? ? test
配置為別名
$ echo "alias docker=podman" >> .bashrc $ source .bashrc $ docker ps -a CONTAINER ID ?IMAGE ? ? ? ? ? ? ? ? ? ? ? ? ? ?COMMAND ? ? CREATED ? ? ? ?STATUS ? ? ? ? ? ?PORTS ?NAMES 1fc033bb2209 ?docker.io/library/centos:latest ?sleep 3600 ?7 minutes ago ?Up 7 minutes ago ? ? ? ? test
相關(guān)工具
Buildah
Buildah專注于構(gòu)建OCI鏡像。 Buildah的命令復(fù)制了Dockerfile中的所有命令。可以使用Dockerfiles構(gòu)建鏡像,并且不需要任何root權(quán)限。 Buildah的最終目標(biāo)是提供更低級(jí)別的coreutils界面來(lái)構(gòu)建圖像。Buildah也支持非Dockerfiles構(gòu)建鏡像,可以允許將其他腳本語(yǔ)言集成到構(gòu)建過(guò)程中。 Buildah遵循一個(gè)簡(jiǎn)單的fork-exec模型,不以守護(hù)進(jìn)程運(yùn)行,但它基于golang中的綜合API,可以存儲(chǔ)到其他工具中。雖然Podman也可以用戶構(gòu)建Docker鏡像,單構(gòu)建速度較慢。
Skopeo
Skopeo是一個(gè)工具,允許我們通過(guò)push,pull和復(fù)制鏡像來(lái)處理Docker和OC鏡像。
到此這篇關(guān)于podman容器工具的具體使用的文章就介紹到這了,更多相關(guān)podman使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Rainbond上部署API?Gateway?Kong及環(huán)境配置教程
這篇文章主要為大家介紹了Rainbond上部署API?Gateway?Kong及環(huán)境配置教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04k8s跨服務(wù)調(diào)用入門(mén)到實(shí)戰(zhàn)示例詳解
這篇文章主要為大家介紹了k8s跨服務(wù)調(diào)用入門(mén)到實(shí)戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09詳解Rainbond云原生平臺(tái)簡(jiǎn)化Kubernetes業(yè)務(wù)問(wèn)題排查
這篇文章主要介紹了詳解Rainbond云原生平臺(tái)簡(jiǎn)化Kubernetes業(yè)務(wù)問(wèn)題排查,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03k8s?service?nodePort無(wú)法訪問(wèn)的問(wèn)題解決
今天有一個(gè)項(xiàng)目做service nodeport轉(zhuǎn)發(fā),結(jié)果設(shè)置完之后發(fā)現(xiàn)外網(wǎng)訪問(wèn)失敗,下面這篇文章主要給大家介紹了關(guān)于k8s?service?nodePort無(wú)法訪問(wèn)的問(wèn)題解決,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01k8s部署Ingress并創(chuàng)建規(guī)則的詳細(xì)介紹
這篇文章主要介紹了k8s部署Ingress并創(chuàng)建規(guī)則,本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03Rancher通過(guò)界面管理K8s平臺(tái)的圖文步驟詳解
這篇文章主要為大家介紹了Rancher通過(guò)界面管理K8s平臺(tái)通過(guò)詳細(xì)的圖文進(jìn)行步驟講解,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03Rainbond功能架構(gòu)及應(yīng)用管理官方文檔介紹
這篇文章主要為大家介紹了Rainbond功能機(jī)構(gòu)及使用官方文檔,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04