Docker 是什麼?
Docker 是 2013 年推出的容器技術,是讓「容器」這個概念真正普及到一般開發者手上的關鍵推手。它提供了一整套簡單好用的工具,讓打包、分享、執行容器變得非常容易,也建立了 Docker Hub 這個全世界最大的容器映像檔(image)分享平台。
Docker 的架構:Client-Server
跟 Podman 不同,Docker 採用「主從式(Client-Server)」架構:
- Docker Daemon(
dockerd):背景常駐的服務,實際負責建立、執行、管理容器,需要 root 權限執行 - Docker CLI(
docker):你打的指令,會透過 socket 把請求送給dockerd處理
這代表只要能對 Docker socket 下指令,就等同擁有主機的 root 權限,這是 Docker 與 Podman 在安全模型上的一個重要差異(Podman 預設無 daemon、rootless)。
核心概念
- Image(映像檔):應用程式的唯一打包格式,包含程式碼、函式庫、執行環境
- Container(容器):映像檔執行起來的實體
- Registry(倉庫):存放映像檔的地方,最常見的是 Docker Hub(
docker.io) - Dockerfile:描述「如何建置映像檔」的腳本檔案
與 Podman 的關係
兩者的指令幾乎一致(docker run ≈ podman run),許多教學內容可以互相參考。如果你已經學過 Podman,這個系列會讓你快速掌握 Docker 生態圈特有的工具,例如 Docker Hub、Docker Compose、Docker Desktop。
接下來,我們先從安裝開始。