Docker Daemon 連線問題解決文件
問題描述
在使用 Docker 命令時,遇到以下錯誤:
~$ docker images
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
問題分析
經過查詢,問題可能與 iptables
設定有關。
解決步驟
-
切換
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。
-
重新啟動 Docker 服務:
sudo systemctl restart docker
-
檢查 Docker 服務狀態:
sudo systemctl status docker
-
驗證 Docker 功能:
執行以下命令確認問題已解決:~$ docker images
如果一切正常,應該看到映象列表:
REPOSITORY TAG IMAGE ID CREATED SIZE
結論
透過將 iptables
切換為 iptables-legacy
,成功解決了 Docker 無法連線到守護程序的問題。