修復無法連接到“unix:///var/run/docker.sock”上的 docker 守護進程

修復無法連接到“unix:///var/run/docker.sock”上的 docker 守護進程

使用 Docker,您可以在主機操作系統上運行服務。由於 Docker 應用程序依賴於 Linux 內核的某些功能,因此目前僅適用於 Linux。但是,macOS 和 Windows 用戶也可以運行 Docker。但最近幾天,它在 Windows 設備上無法正常運行。是的,許多用戶報告說他們收到一條錯誤消息,指出他們“無法連接到 Docker 守護程序 (unix:///var/run/docker.sock。Docker 守護程序正在運行嗎?)”。

好吧,一般來說,這種類型的問題發生在運行各種 docker 命令時,如 docker info、docker pull、docker stop、docker start 等。但是,您不必擔心這個問題,因為我們已經在其中整理了一些修復程序文章..這將幫助您修復無法連接到 unix:///var/run/docker.sock 中的 docker daemon 的錯誤消息。Docker 守護進程正在運行?那麼讓我們從他們開始吧。

什麼是 docker 守護進程?

Docker 守護進程是管理容器映像、網絡和存儲卷的進程。在整個過程中,Docker 守護進程會跟踪通過 Docker API 發出的請求。

除了響應 Docker API 請求之外,Docker 守護進程 (dockerd) 還管理 Docker 對象,包括映像、容器、網絡和卷。作為管理 Docker 服務的一部分,守護進程可以相互通信。

如何修復無法連接到 Docker Daemon

開發商的投訴促使我們開發有效的解決方案。此錯誤可能由多種因素引起,包括 Docker 關閉時 Docker 未運行、無法正常工作以及由於缺乏 root 權限而無法啟動 Docker。

因此,正如您所了解的,問題的根本原因是無法連接到位於 unix:///var/run/docker.sock 的 docker 守護進程。Docker 守護進程正在運行?那麼讓我們看看一些可能的解決方案。

修復1:清除“Failed Docker Pull”並啟動Docker服務。

Docker 應用程序在提取容器時可能會意外關閉,這就是您收到此類錯誤的原因。在這種情況下,Docker服務和socket文件將被隱藏。為了與 Docker 通信,可以在 /var/run/docker.sock 中找到名為 Docker.socket 的文件。因此,只有我們取消屏蔽兩個文件——Docker.service 和 docker.daemon,Docker 才會啟動。

  • 打開終端並使用以下命令

systemctl разоблачить docker.service systemctl размаскировать docker.socket systemctl запустить docker.service

  • 如果運行以下命令後仍然遇到錯誤,我們現在需要在重新啟動 Docker 之前從 Containers 目錄中刪除文件。然後運行這個命令。但是,請確保您知道 root 密碼,因為我們需要提升權限。

sudo su docker 服務停止

cd /var/run/docker/libcontainerd rm -rfContainerd/* rm -f dockercontainerd.pid

啟動服務docker

修復 2:使用 systemctl 啟動 Docker 服務

如果您剛剛在 Ubuntu 上安裝了 Docker 或者重新啟動了計算機,則 Docker 服務很可能未運行。它是一個提供Docker服務的Docker守護進程(dockerd)。這是服務接收 Docker API 請求並處理各種 Docker 對象(例如鏡像、容器、網絡和卷)的地方。

使用systemctl,您可以控制Linux上運行的系統服務,取代舊的SysV init系統。如果沒有安裝systemctl,可以使用service命令。但是,如果您不知道如何操作,請務必按照以下步驟操作:

  • 打開 Windows 終端並運行命令以公開 Docker:
    sudo systemctl разоблачить докер

該掩碼可以被認為是禁用 Docker.service 的更強大的版本。如果我們嘗試在設備被屏蔽時啟動服務,則會出現該錯誤。屏蔽單元文件與設備 dev/null相關聯。使用命令 $ systemctl list-unit-files可以查看所有單元文件的狀態。

  • 在 docker 盒子被取消屏蔽後,可以使用 systemctl 命令。運行這個命令:
    systemctl запустить докер
  • 確保 Docker 已啟動並正在運行。要查看服務的當前狀態,我們將使用 systemctl status 命令。您可以運行此命令:
    докер состояния systemctl

修復 3:使用服務命令啟動 Docker

如果上述方法對您不起作用,您的設備可能正在使用 SysC init 系統。好吧,如果是這樣的話,systemctl 命令可能不適合您。

相反,您必須使用服務命令來啟動 docker 守護進程,而不會收到錯誤,無法連接到 unix:///var/run/docker.sock 處的 docker 守護進程。Docker 守護進程正在運行?那麼讓我們看看你是如何做到的:

  • 打開 Windows 終端並運行以下命令:
    служба sudo --status-all
    запуск докера службы sudo

修復 4:啟動 Dockerd 服務(Docker Daemon)

如果以上方法都不適合您,您還可以使用 Dockerd 服務來啟動 Docker 守護進程。但是,要使用Dockerd服務,您需要執行以下操作:

  1. 首先,打開 Windows 終端並運行命令:
    судо докерд

修復 5:為非root 用戶運行 Docker

一些用戶報告說,在沒有 root 權限的情況下運行 Docker 可以幫助他們修復錯誤消息“cannot connect to docker daemon at unix:///var/run/docker.sock”。Docker 守護進程正在運行?那麼我們來檢查一下步驟:

  1. 打開 Windows 終端並運行命令:
    экспорт DOCKER_HOST=tcp://localhost:2375

修復 6:使用 Snap 啟動 Docker 服務

如果您使用 Snap 包管理器安裝它,則可以使用 snap 命令控制 Docker。這是因為 Snap 管理的服務通常是自動化的。然而,在這種情況下可能需要手動干預。因此,為了使用它來運行 Docker,您必須遵循以下步驟:

  • 打開 Windows 終端並運行命令:
    sudo snap запустить докер
  • 完成上述命令後,運行以下命令:
    сервисы sudo snap

修復 7:重新安裝 Docker

如果您已嘗試上述所有修復來解決錯誤消息“無法連接到 unix:///var/run/docker.sock 上的 docker 守護進程。Docker 守護進程正在運行嗎?”,那麼除了在 PC 上重新安裝 Docker 之外,您應該保留該選項。但是,如果您不知道如何重新安裝 Docker,可以訪問 Ubuntu 官方網站並查看如何操作。

盤點 | 啟動 Docker 守護進程

因此,以下是修復無法連接到 docker daemon at unix:///var/run/docker.sock 的錯誤消息的方法。Docker 守護進程正在運行?我們希望這篇故障排除文章對您有所幫助。但是,如果您有任何疑問或疑問,請在下面發表評論並告知我們。另外,不要忘記查看我們關於 iTechHacks 的其他指南。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *