Docker 基礎入門

第一章:認識 Docker 與容器概念

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 Hubdocker.io
  • Dockerfile:描述「如何建置映像檔」的腳本檔案

與 Podman 的關係

兩者的指令幾乎一致(docker runpodman run),許多教學內容可以互相參考。如果你已經學過 Podman,這個系列會讓你快速掌握 Docker 生態圈特有的工具,例如 Docker Hub、Docker Compose、Docker Desktop。

接下來,我們先從安裝開始。