Docker 是一個開源的應(yīng)用容器引擎,屬于 Linux 容器的一種封裝,Docker 提供簡單易用的容器使用接口,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上。容器是完全使用沙箱機(jī)制,相互之間不會有任何接口。
成都創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作與策劃設(shè)計(jì),右江網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:右江等地區(qū)。右江做網(wǎng)站價(jià)格咨詢:028-86922220Podman 是一個開源的容器運(yùn)行時項(xiàng)目,可在大多數(shù) Linux 平臺上使用。Podman 提供與 Docker 非常相似的功能。正如前面提到的那樣,它不需要在你的系統(tǒng)上運(yùn)行任何守護(hù)進(jìn)程,并且它也可以在沒有 root 權(quán)限的情況下運(yùn)行。
Podman 可以管理和運(yùn)行任何符合 OCI(Open Container Initiative)規(guī)范的容器和容器鏡像。Podman 提供了一個與 Docker 兼容的命令行前端來管理 Docker 鏡像。
- Podman 官網(wǎng)地址:https://podman.io/
- Podman 項(xiàng)目地址:https://github.com/containers/libpod
docker cli
命令通過API跟 Docker Engine(引擎)
交互告訴它我想創(chuàng)建一個container,然后docker Engine
才會調(diào)用OCI container runtime(runc)
來啟動一個container。這代表container的process(進(jìn)程)不會是Docker CLI
的child process(子進(jìn)程)
,而是Docker Engine
的child process
。Podman
是直接給OCI containner runtime(runc)
進(jìn)行交互來創(chuàng)建container的,所以container process
直接是podman
的child process
。--restart
策略,但是podman不支持,如果在k8s中就不存在這個問題,我們可以設(shè)置pod的重啟策略,在系統(tǒng)中我們可以采用編寫systemd服務(wù)來完成自啟動sudo pacman -S podman
sudo yum -y install podman
sudo emerge app-emulation/libpod
brew cask install podman
Podman CLI 里面87%的指令都和DOcker CLI 相同,官方給出了這么個例子alias docker=podman
,所以說經(jīng)常使用DOcker CLI的人使用podman上手非???/p>
podman run -dt -p 80:80 --name nginx -v /data:/data -e NGINX_VERSION=1.16 nginx:1.16.0
# podman ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
19f105d5dc1e docker.io/library/nginx:1.16.0 nginx -g daemon o... 2 minutes ago Up 2 minutes ago 0.0.0.0:80->80/tcp nginx
# podman inspect nginx | grep -i "ipaddress"
"SecondaryIPAddresses": null,
"IPAddress": "10.88.0.110",
podman logs nginx
# podman top nginx
USER PID PPID %CPU ELAPSED TTY TIME COMMAND
root 1 0 0.000 5m26.420969043s pts/0 0s nginx: master process nginx -g daemon off;
nginx 6 1 0.000 5m26.421085502s pts/0 0s nginx: worker process
# podman stats nginx
ID NAME CPU % MEM USAGE / LIMIT MEM % NET IO BLOCK IO PIDS
19f105d5dc1e nginx -- 2.036MB / 1.893GB 0.11% 978B / 10.55kB -- / -- 2
Podman 支持將容器從一臺機(jī)器遷移到另一臺機(jī)器。
首先,在源機(jī)器上對容器設(shè)置檢查點(diǎn),并將容器打包到指定位置。
$ sudo podman container checkpoint <container_id> -e /tmp/checkpoint.tar.gz
$ scp /tmp/checkpoint.tar.gz <destination_system>:/tmp
其次,在目標(biāo)機(jī)器上使用源機(jī)器上傳輸過來的打包文件對容器進(jìn)行恢復(fù)。
$ sudo podman container restore -i /tmp/checkpoint.tar.gz
由于 Podman 不再使用守護(hù)進(jìn)程管理服務(wù),所以不能通過守護(hù)進(jìn)程去實(shí)現(xiàn)自動重啟容器的功能。那如果要實(shí)現(xiàn)開機(jī)自動重啟容器,又該如何實(shí)現(xiàn)呢?
其實(shí)方法很簡單,現(xiàn)在大多數(shù)系統(tǒng)都已經(jīng)采用 Systemd 作為守護(hù)進(jìn)程管理工具。這里我們就可以使用 Systemd 來實(shí)現(xiàn) Podman 開機(jī)重啟容器,這里我們以剛才啟動的nginx為例。
建立一個 Systemd 服務(wù)配置文件。
$ vim /etc/systemd/system/nginx_podman.service
[Unit]
Description=Podman Nginx Service
After=network.target
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/podman start -a nginx
ExecStop=/usr/bin/podman stop -t 10 nginx
Restart=always
[Install]
WantedBy=multi-user.target
接下來,啟用這個 Systemd 服務(wù)
$ sudo systemctl daemon-reload
$ sudo systemctl enable nginx_podman.service
$ sudo systemctl start nginx_podman.service
之后每次系統(tǒng)重啟后 Systemd 都會自動啟動這個服務(wù)所對應(yīng)的容器,容器死亡之后也會啟動這個容器,我們可以用下面的例子做測試
打一個sleep 30的docker包,這個容器運(yùn)行起來一次只能堅(jiān)持30s
$ vim Dockerfile
FROM busybox:latest
CMD ["sh","-c","sleep 30"]
然后按照上述方式設(shè)置啟動自啟動
我們剛才啟動了一個nginx的podman 現(xiàn)在我們來看一下他的進(jìn)程
# ps -ef | grep [n]ginx
root 19368 19359 0 11:38 pts/0 00:00:00 nginx: master process nginx -g daemon off;
101 19381 19368 0 11:38 pts/0 00:00:00 nginx: worker process
然后查看這個nginx的父進(jìn)程是那個
# ps -ef | grep 19359
root 19359 1 0 11:38 ? 00:00:00 /usr/libexec/podman/conmon 。。。。
所以驗(yàn)證了我上面的說法
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當(dāng)前題目:podman初試-和docker對比-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://muchs.cn/article24/dhgpce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、移動網(wǎng)站建設(shè)、微信公眾號、電子商務(wù)、微信小程序、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容