今天在某雲上新購一臺雲服務器,發現已經有了 CentOS8.2 官方鏡像可選,出於對新鮮事物的好奇,我決定開始採用 CentOS8.2,即便我尚未爲它的新特性作好準備。php
個人應用主要以單機版容器爲主。所以,服務器啓動的第一件事就是安裝 Docker。不幸的事情發生了,個人 Docker 應用沒有像 CentOS7 那樣如期 running 起來。docker
花了大量的時間排查,才找到一絲線索:CentOS8 以上的版本默認已經安裝一個等同於 Podman 的容器解決方案。shell
兩個容器解決在一塊兒工做,相互打架的事情必然會發生。出於長治久安的考量,今天整個下午我展開了對 Podman 的研究,獲得了以下的結論,但願這些結論可以讓你們少走一點彎路。bash
對於這種問題,我想沒有深入的實踐是沒法得出結論的。因此就我我的來講,只能從各類專業博客和論壇中尋找答案。服務器
我發現 Podman 中文相關的資料很是少,同理,評價它的博客就更少了,卻是有一篇很是吸人眼球的文章,例如:Docker 大勢已去,Podman 萬歲。但認真閱讀它,卻沒有特別有價值的對比,徹底是一種主觀的表達。所以,咱們不要被他人的文章所引導(誤導)而造成一種偏見。阿里雲
Podman 是 RedHat 爲了搶佔容器標準的一種戰略產品,這就是個人見解。rest
大部分是兼容的,例如:code
1.能夠直接使用 Docker 鏡像ip
2.命令很是類似get
若是你很是懷念 docker命令,甚至能夠給 Podman 設置別名爲 docker:
echo "alias docker=podman" >> .bashrc source .bashrc
文件 /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://<你的ID>.mirror.aliyuncs.com
七牛雲加速器:https://reg-mirror.qiniu.com
4.保存
Podman Compose 等同於 Docker Compose,是用於固化容器運行參數以及協調容器之間的關係的一種較爲簡單的方案。
使用以下的命令,安裝 Podman Compose,並根據本身的喜愛設置別名(若是仍然忘不了 docker)
pip3 install podman-compose echo "alias docker-compose=podman-compose" >> .bashrc source .bashrc
若是以普通用戶運行容器,此容器默認沒法被外網訪問,爲了不沒必要要的麻煩,建議以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原創發佈,轉載請註明出處。