Podman與docker兼容性問題

使用Podman最好的地方就是支持rootless,也就是說用戶不需要爲root權限即可進行容器的管理操作。因此現在在CentOS 8及以後的版本中,默認使用Podman替代Docker,如果使用docker命令,會重定向到podman。

rootless很好,但是也帶來了一些問題:

多餘的提示

運行命令的時候,只要輸入了docker,那麼就會彈出提示:

docker Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg. 

如果就是單純的提示,那麼問題不大。不過很多第三方的腳本執行的時候,沒有考慮到podman的兼容性,出現了多餘的提示會認爲docker執行命令失敗,我們需要去除它。方法也比較簡單,按照提示,執行:

sudo echo >> /etc/containers/nodocker

出現一個空文件即可,後面執行文件就不出現提示了。

提示無法映射1024以下的特權端口

非root用戶使用docker時,對外使用80端口系統提示非root用戶無法使用1024以下的端口,需要添加設置:

#當前設置 
sysctl net.ipv4.ip_unprivileged_port_start=80 
#永久設置 
echo "net.ipv4.ip_unprivileged_port_start=80" >> /etc/sysctl.conf

重啓之後Podman容器無法自動啓動

dockerroot綁定,啓動的時候能夠自動啓動標記爲-d的容器,但是podman不行,需要進行額外的操作,詳細看這篇文章。總之就是麻煩,不如docker這麼簡單直接。

總結

由於一直使用root進行登錄,非常容易被攻擊掛馬,改用其他用戶能夠顯著改善這個問題,但是需要謹慎處理podman與docker之間的兼容性問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章