9 分鐘閱讀

安裝步驟

安裝步驟

  1. 安裝docker
    sudo dnf install docker-ce docker-ce-cli containerd.io
    
  2. 啟用並啟動服務
      sudo systemctl enable --now docker
    

核心部件

  1. docker-ce(Docker Community Edition Daemon)
    • 是 Docker 的核心守護程式(daemon),也就是 dockerd
    • 負責管理:

      • 容器的啟動、停止、監控

      • 與 Linux kernel 的整合(如 Cgroups、namespaces)

      • 呼叫 containerd 來執行容器

    • 啟動後會常駐於系統背景:/usr/bin/dockerd
  2. docker-ce-cliDocker Command-Line Interface
    • 也就是 docker 指令本體(終端機輸入的 `docker run )。

    • dockerd(Daemon)透過 Unix socket 或 REST API 通訊。

    • 單獨安裝 CLI 沒辦法真正啟動容器,需要 docker-ce 搭配使用。

  3. 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,它還是會 用一台內建的虛擬機(如使用 qemuvirt-managersystemd-nspawn 來跑 Docker 引擎。

  • 它會啟動一個 daemon VM(叫 docker-desktopdocker-desktop-data),並建立 bridge 網路介面、用 iptables 設定轉發。

總結比較

比較項目 Docker CE Docker Desktop
安裝位置 Native 安裝於 Linux 上 使用虛擬機環境包裝 Docker
是否使用 VM 不使用 使用
是否與 VirtualBox 衝突 幾乎不會 可能會(尤其在 Linux 上)
推薦使用時機 你是 Linux 使用者 你是 Windows/macOS 或懶得設定時

標籤:

更新時間: