場景
執行
docker ps
指令時發現異常:
[root@administrator yum.repos.d]# docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running
執行如下正常操作均無解:
1.重新開機Docker:
systemctl restart docker
2.停止Docker:
systemctl stop docker
3.啟動Docker:
systemctl start docker
原因分析
首先:
daemon預設監聽/var/run/docker.sock這個檔案,docker用戶端把請求發往這裡,daemon就能收到并做出響應。
其次:
看異常資訊推測:
var/run/docker.sock
檔案異常,執行
systemctl status docker.socket
檢視其狀态
[root@administrator yum.repos.d]# systemctl status docker.socket
● docker.socket - Docker Socket for the API
Loaded: loaded (/usr/lib/systemd/system/docker.socket; enabled; vendor preset: disabled)
Active: failed (Result: resources) since 三 2022-06-15 23:36:57 CST; 52s ago
Listen: /var/run/docker.sock (Stream)
6月 15 23:36:57 administrator systemd[1]: Closed Docker Socket for the API.
6月 15 23:37:20 administrator systemd[1]: docker.socket failed to listen on sockets: Address already in use
6月 15 23:37:20 administrator systemd[1]: Failed to listen on Docker Socket for the API.
6月 15 23:37:20 administrator systemd[1]: Unit docker.socket entered failed state.
6月 15 23:37:36 administrator systemd[1]: docker.socket failed to listen on sockets: Address already in use
6月 15 23:37:36 administrator systemd[1]: Failed to listen on Docker Socket for the API.
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
[root@administrator yum.repos.d]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: inactive (dead) since 三 2022-06-15 23:36:57 CST; 1min 7s ago
Docs: https://docs.docker.com
Process: 6895 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=0/SUCCESS)
Main PID: 6895 (code=exited, status=0/SUCCESS)
[root@administrator yum.repos.d]# ls -l /var/run/ | grep docker
drwx------ 8 root root 160 6月 15 23:36 docker
drwxr-xr-x 2 root root 40 6月 8 01:07 docker.sock
解決方案
[root@administrator yum.repos.d]# rm -rf /var/run/docker.sock
[root@administrator yum.repos.d]# systemctl start docker
[root@administrator yum.repos.d]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
02688799076d portainer/portainer "/portainer" 6 months ago Up 4 seconds 0.0.0.0:9000->9000/tcp portainer