今天在某云上新購一臺云服務器,發現已經有了 CentOS8.2 官方鏡像可選,出于對新鮮事物的好奇,我決定開始采用 CentOS8.2,即使我還沒有為它的新特性做好準備,
我的應用主要以單機版容器為主,因此,服務器啟動的第一件事就是安裝 Docker,不幸的事情發生了,我的 Docker 應用沒有像 CentOS7 那樣如期 running 起來,
花了大量的時間排查,才找到一絲線索:CentOS8 以上的版本默認已經安裝一個等同于 Podman 的容器解決方案,
兩個容器解決在一起作業,相互打架的事情必然會發生,出于長治久安的考量,今天整個下午我展開了對 Podman 的研究,得到了如下的結論,希望這些結論能夠讓大家少走一點彎路,
Podman 與 Docker 哪個好?
對于這種問題,我想沒有深刻的實踐是無法得出結論的,所以就我個人來說,只能從各種專業博客和論壇中尋找答案,
我發現 Podman 中文相關的資料非常少,同理,評價它的博客就更少了,倒是有一篇非常吸人眼球的文章,例如:Docker 大勢已去,Podman 萬歲,但認真閱讀它,卻沒有特別有價值的對比,完全是一種主觀的表達,因此,我們不要被他人的文章所引導(誤導)而形成一種偏見,
Podman 是 RedHat 為了搶占容器標準的一種戰略產品,這就是我的看法,
Podman 兼容 Docker嗎?
大部分是兼容的,例如:
1.可以直接使用 Docker 鏡像
2.命令非常相似
如果你非常懷念 docker命令,甚至可以給 Podman 設定別名為 docker:
echo "alias docker=podman" >> .bashrc
source .bashrc
Podman 鏡像
默認鏡像庫
檔案 /etc/containers/registries.conf 是設定鏡像地址組態檔,默認會搜索 ['registry.access.redhat.com', 'registry.redhat.io', 'docker.io', 'quay.io']
等幾個鏡像庫,
不過,這幾個鏡像庫下載速度非常慢,可以說是基本無法順利的將鏡像拉下來,
所以,需要修改修改鏡像庫組態檔,也就是大家說的鏡像加速方案,
鏡像加速
只需4個步驟實作鏡像加速:
1.改名并備份好檔案:/etc/containers/registries.conf
2.再新建一個空的 registries.conf 檔案,插入如下內容
unqualified-search-registries = ["docker.io"]
[[registry]]
prefix = "docker.io"
location = "******.mirror.aliyuncs.com"
3.修改 location
-
網易:https://hub-mirror.c.163.com/
-
阿里云:https://<你的ID>.mirror.aliyuncs.com
-
七牛云加速器:https://reg-mirror.qiniu.com
4.保存
Podman Compose
Podman Compose 等同于 Docker Compose,是用于固化容器運行引數以及協調容器之間的關系的一種較為簡單的方案,
使用如下的命令,安裝 Podman Compose,并根據自己的喜好設定別名(如果仍然忘不了 docker)
pip3 install podman-compose
echo "alias docker-compose=podman-compose" >> .bashrc
source .bashrc
Podman 外網
如果以普通用戶運行容器,此容器默認無法被外網訪問,為了避免不必要的麻煩,建議以root用戶創建并運行容器,
另外,run 容器的時候,請勿使用 -p 0.0.0.0:9090:80 這種埠映射方式,它會導致容器無法被外網訪問,如果采用正常的埠映射方式-p :9090:80,就沒有任何問題,
#無法被外網訪問
sudo podman run --name phpmyadmin --restart=always -itd -p 0.0.0.0:9090:80 -e
PMA_HOST=10.88.0.1 phpmyadmin/phpmyadmin
#可以被外網訪問
sudo podman run --name phpmyadmin --restart=always -itd -p 9090:80 -e
PMA_HOST=10.88.0.1 phpmyadmin/phpmyadmin
本文由Websoft9原創發布,轉載請注明出處,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/226601.html
標籤:其他
