docker無法啟動排查運維記錄

rainsc發表於2024-09-22

Docker Daemon 連線問題解決文件

問題描述

在使用 Docker 命令時,遇到以下錯誤:

~$ docker images
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

問題分析

經過查詢,問題可能與 iptables 設定有關。

解決步驟

  1. 切換 iptables 設定
    使用以下命令檢視當前的 iptables 選項:

    sudo update-alternatives --config iptables
    

    輸出可能如下:

    有 2 個候選項可用於替換 iptables (提供 /usr/sbin/iptables)。
    
      選擇       路徑                     優先順序  狀態
    ------------------------------------------------------------
    * 0            /usr/sbin/iptables-nft      20        自動模式
      1            /usr/sbin/iptables-legacy   10        手動模式
      2            /usr/sbin/iptables-nft      20        手動模式
    
    要維持當前值[*]請按<Enter鍵>,或者鍵入選擇的編號:
    

    輸入選項 1(選擇 iptables-legacy),然後按 Enter 鍵。

    應該看到類似於以下的輸出,確認切換已成功:

    update-alternatives: 使用 /usr/sbin/iptables-legacy 替換 /usr/sbin/iptables。
    
  2. 重新啟動 Docker 服務

    sudo systemctl restart docker
    
  3. 檢查 Docker 服務狀態

    sudo systemctl status docker
    
  4. 驗證 Docker 功能
    執行以下命令確認問題已解決:

    ~$ docker images
    

    如果一切正常,應該看到映象列表:

    REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
    

結論

透過將 iptables 切換為 iptables-legacy,成功解決了 Docker 無法連線到守護程序的問題。

相關文章