簡體   English   中英

/var/run/docker.sock:沒有這樣的文件或目錄

[英]/var/run/docker.sock: No such file or directory

1)我正在使用以下cmd運行docker容器:

$ docker run --name=xyz -d -e CONTAINER_NAME=xyz -e SSH_PORT=22 -e NWMODE=HOST -e XDG_RUNTIME_DIR=/run/user/0 --net=host -v /mnt:/mnt -v /dev:/dev -v /etc/sysconfig/network-scripts:/etc/sysconfig/network-scripts -v /:/hostroot/ -v /etc/hostname:/etc/host_hostname -v /etc/localtime:/etc/localtime -v /var/run/docker.sock:/var/run/docker.sock --privileged=true cf3681e04bfb

2)在容器內,我有一個a.py,在其中創建一個docker客戶端,如下所示:

$ cat a.py
#!/usr/bin/python
from docker import Client as DC
dc = DC('unix://var/run/docker.sock', version='auto')

3)運行a.py會出現以下錯誤:

$ ./a.py /usr/local/lib/python2.7/dist-packages/requests/__init__.py:83: RequestsDependencyWarning: Old version of cryptography ([1, 2, 3]) may cause slowdown. warnings.warn(warning, RequestsDependencyWarning) Traceback (most recent call last): File "./a.py", line 5, in <module> dc = DC('unix://var/run/docker.sock', version='auto') File "/usr/local/lib/python2.7/dist-packages/docker/client.py", line 99, in __init__ self._version = self._retrieve_server_version() File "/usr/local/lib/python2.7/dist-packages/docker/client.py", line 124, in _retrieve_server_version 'Error while fetching server API version: {0}'.format(e) docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', error(2, 'No such file or directory'))

4)我有一個docker守護進程在監聽模式下與unix域套接字一起運行:

$ netstat --listen | grep docker unix 2 [ ACC ] STREAM LISTENING 11146 /var/run/docker.sock unix 2 [ ACC ] STREAM LISTENING 17471 /var/run/docker/libcontainerd/docker-containerd.sock unix 2 [ ACC ] STREAM LISTENING 17648 /run/docker/libnetwork/02833519b1ad75ad062f6443ab5c10e5d9c783c22beb98d8b8b41b2ee082cfcd.sock

5)在容器內,我得到:

$ curl --verbose --unix-socket /var/run/docker.sock http:/containers/json * Trying /var/run/docker.sock... * Immediate connect fail for /var/run/docker.sock: No such file or directory * Closing connection 0 curl: (7) Couldn't connect to server

6)如果我從容器中退出並在主機上運行相同的curl cmd,則工作正常:

$ exit //coming out from the container $ curl --unix-socket /var/run/docker.sock http:/containers/json [{"Id":"3973df106fcfae0d1f5b4be23b6e5f265421aa932053433f5e9e7bc9574d753a","Names"......multiple key-value pairs here...]

誰能讓我知道上述步驟3/5中可能的錯誤原因。 還有什么可以嘗試進一步調試它的。 謝謝。

它僅適用於節點。 如果希望它在容器內運行,請確保使用volumes hostPath方法掛載/ var / run。

curl --unix-socket /var/run/docker.sock http://docker/containers/json

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM