在Fedora中透過podman使用VSCode DevContainer

之前在《使用VSCode搭配DevContainer容器化開發Vue專案》中曾經紀錄過如何使用 VSCode DevContainer 來容器化開發 Vue 專案,但因為 Fedora 內建的容器化引擎是 Podman,而 Podman 號稱與 Docker 之間的指令是互通的,所以就來嘗試看看是否能原生使用 Podman 而不安裝 Docker 來使用 DevContainer。
Podman 簡介
總之呢,Podman 是 Redhat 公司所推出的,一款跟 Docker 一樣是開放原始碼的容器管理工具。與 Docker 最大的差異是 Podman 預設都是無根權限的,沒有所謂的「守護進程」,Podman 比起 Docker 開源的部份更多、更符合 OCI 規範。
關於 Podman 的詳細介紹以及與 Docker 的比較,可參考 Redhat 官方文章 。
安裝模擬 Docker 的 Podman 套件
雖然官方文件中,建議可以透過調整 VSCode 的設定值來讓 DevContainer 所呼叫的指令從docker改用podman,但 Fedora 有內建一個很方便的套件叫做podman-docker,它會自動使用podman來接收docker的指令,並且調整相關變數(例如$DOCKER_HOST),比起自己一個一個設定會來得方便許多。
這邊就嘗試安裝這個套件而不調整vs code設定值的方式,看看DevContainer能否正常運作:
sudo dnf install podman-docker
若有先安裝 Docker,建議先完全移除後重新開機,此部份可參考
官方文件
,然後再安裝
podman-docker
。
後記
這樣真的滿方便的,對於使用Fedora的我來說,就不用再額外安裝 Docker 來做開發,能夠作到幾乎開箱即用了,非常方便。
之前使用的時候,似乎是因為Podman 預設無root權限,導致開發時會有使用者權限錯亂的問題,要額外調整設定值之後才能正常使用,但最近嘗試之後已經可以順順執行囉。




