隨機手札

在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權限,導致開發時會有使用者權限錯亂的問題,要額外調整設定值之後才能正常使用,但最近嘗試之後已經可以順順執行囉。


Support me on Ko-fi