podman容器工具的具體使用
podman簡介
Podman是一個開源項目,可在大多數(shù)Linux平臺上使用并開源在GitHub上。Podman是一個無守護進程的容器引擎,用于在Linux系統(tǒng)上開發(fā),管理和運行Open Container Initiative(OCI)容器和容器鏡像。Podman提供了一個與Docker兼容的命令行前端,它可以簡單地作為Docker cli,簡單地說你可以直接添加別名:alias docker = podman來使用podman。
Podman控制下的容器可以由root用戶運行,也可以由非特權(quán)用戶運行。Podman管理整個容器的生態(tài)系統(tǒng),其包括pod,容器,容器鏡像,和使用libpod library的容器卷。Podman專注于幫助您維護和修改OCI容器鏡像的所有命令和功能,例如拉取和標(biāo)記。它允許您在生產(chǎn)環(huán)境中創(chuàng)建,運行和維護從這些映像創(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在實現(xiàn)CRI的時候,它需要一個守護進程,其次需要以root運行,因此這也帶來了安全隱患。
- podman不需要守護程序,也不需要root用戶運行,從邏輯架構(gòu)上,比docker更加合理。
- 在docker的運行體系中,需要多個daemon才能調(diào)用到OCI的實現(xiàn)RunC。
- 在容器管理的鏈路中,Docker Engine的實現(xiàn)就是dockerd
- daemon,它在linux中需要以root運行,dockerd調(diào)用containerd,containerd調(diào)用containerd-shim,然后才能調(diào)用runC。顧名思義shim起的作用也就是“墊片”,避免父進程退出影響容器的運訓(xùn)
- podman直接調(diào)用OCI,runtime(runC),通過common作為容器進程的管理工具,但不需要dockerd這種以root身份運行的守護進程。
- 在podman體系中,有個稱之為common的守護進程,其運行路徑通常是/usr/libexec/podman/conmon,它是各個容器進程的父進程,每個容器各有一個,common的父則通常是1號進程。podman中的common其實相當(dāng)于docker體系中的containerd-shim。
podman安裝使用
使用centos官方y(tǒng)um源進行安裝
$ 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
運行容器
$ 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中的所有命令??梢允褂肈ockerfiles構(gòu)建鏡像,并且不需要任何root權(quán)限。 Buildah的最終目標(biāo)是提供更低級別的coreutils界面來構(gòu)建圖像。Buildah也支持非Dockerfiles構(gòu)建鏡像,可以允許將其他腳本語言集成到構(gòu)建過程中。 Buildah遵循一個簡單的fork-exec模型,不以守護進程運行,但它基于golang中的綜合API,可以存儲到其他工具中。雖然Podman也可以用戶構(gòu)建Docker鏡像,單構(gòu)建速度較慢。
Skopeo
Skopeo是一個工具,允許我們通過push,pull和復(fù)制鏡像來處理Docker和OC鏡像。
到此這篇關(guān)于podman容器工具的具體使用的文章就介紹到這了,更多相關(guān)podman使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Rainbond調(diào)用Vue?React項目的后端接口
這篇文章主要為大家介紹了Rainbond調(diào)用Vue?React項目的后端接口問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-04-04
k8s?Service?實現(xiàn)服務(wù)發(fā)現(xiàn)和負(fù)載均衡
這篇文章主要為大家介紹了k8s?Service?實現(xiàn)服務(wù)發(fā)現(xiàn)和負(fù)載均衡的工作原理及使用方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-04-04
2022最新青龍面板對接機器人的詳細(xì)過程(傻妞對接onebot(oicq)協(xié)議實現(xiàn)機器人功能)
這篇文章主要介紹了2022最新青龍面板對接機器人的詳細(xì)過程(傻妞對接onebot(oicq)協(xié)議實現(xiàn)機器人功能),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05
關(guān)于k8s?使用?Service?控制器對外暴露服務(wù)的問題
這篇文章主要介紹了k8s使用Service控制器對外暴露服務(wù),包括部署deploy,部署?service及查看?service?和?pod?的關(guān)系,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03

