安裝Docker的細節
安裝步驟
安裝步驟
- 安裝docker
sudo dnf install docker-ce docker-ce-cli containerd.io - 啟用並啟動服務
sudo systemctl enable --now docker
核心部件
- docker-ce(Docker Community Edition Daemon)
- 是 Docker 的核心守護程式(daemon),也就是
dockerd。 -
負責管理:
-
容器的啟動、停止、監控
-
與 Linux kernel 的整合(如 Cgroups、namespaces)
-
呼叫 containerd 來執行容器
-
- 啟動後會常駐於系統背景:
/usr/bin/dockerd
- 是 Docker 的核心守護程式(daemon),也就是
docker-ce-cli(Docker Command-Line Interface)-
也就是
docker指令本體(終端機輸入的 `docker run )。 -
與
dockerd(Daemon)透過 Unix socket 或 REST API 通訊。 -
單獨安裝 CLI 沒辦法真正啟動容器,需要
docker-ce搭配使用。
-
containerd.io-
是 Docker 使用的 容器執行引擎(container runtime)。
-
原本是 Docker 的一部分,現在獨立發展,由 CNCF 維護。
-
Docker 的 daemon(dockerd)會呼叫
containerd來管理容器生命週期。 -
Kubernetes 等也可直接使用 containerd,不需要 Docker。
-
與Docker Desktop的差異
一直以為我都安裝Docker Desktop,直到我開始同時使用vm ,兩個服務就會互相衝突,必須一直手動關閉重起虛擬化服務
為什麼 docker-ce 不會跟 VirtualBox 衝突?
docker-ce 是「原生」安裝在 Linux 上的 Docker Daemon:
-
它 直接使用 Linux 的 kernel 功能(如 namespaces、cgroups)來執行容器,不需要任何虛擬機(VM)。
-
所以只要是 **Linux 原生環境,Docker CE 就能直接跑,不會跟 VirtualBox 衝突。
為什麼 Docker Desktop 會跟 VirtualBox 衝突
Docker Desktop 在 Linux/macOS/Windows 上用的是 虛擬機(VM):
-
即使是在 Linux 上裝 Docker Desktop,它還是會 用一台內建的虛擬機(如使用
qemu、virt-manager、systemd-nspawn) 來跑 Docker 引擎。 -
它會啟動一個 daemon VM(叫
docker-desktop或docker-desktop-data),並建立 bridge 網路介面、用iptables設定轉發。
總結比較
| 比較項目 | Docker CE | Docker Desktop |
|---|---|---|
| 安裝位置 | Native 安裝於 Linux 上 | 使用虛擬機環境包裝 Docker |
| 是否使用 VM | 不使用 | 使用 |
| 是否與 VirtualBox 衝突 | 幾乎不會 | 可能會(尤其在 Linux 上) |
| 推薦使用時機 | 你是 Linux 使用者 | 你是 Windows/macOS 或懶得設定時 |