使用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
容器無法自動啓動
docker
和root
綁定,啓動的時候能夠自動啓動標記爲-d的容器,但是podman不行,需要進行額外的操作,詳細看這篇文章。總之就是麻煩,不如docker這麼簡單直接。
總結
由於一直使用root進行登錄,非常容易被攻擊掛馬,改用其他用戶能夠顯著改善這個問題,但是需要謹慎處理podman與docker之間的兼容性問題。