簡體   English   中英

碼頭工人錯誤:/var/run/docker.sock:沒有這樣的文件或目錄

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

我是碼頭工人的新手。 我有一個將數據加載到 impala 的 shell 腳本,我想要一個運行構建圖像並運行容器的 docker 文件。 我在 mac 上,安裝了 boot2docker 並設置了DOCKER_HOST

bash-3.2$ docker info
Containers: 0
Images: 0
Storage Driver: aufs
Root Dir: /mnt/sda1/var/lib/docker/aufs
Dirs: 0
Execution Driver: native-0.2
Kernel Version: 3.15.3-tinycore64
Debug mode (server): true
Debug mode (client): false
Fds: 10
Goroutines: 10
EventsListeners: 0
Init Path: /usr/local/bin/docker
Sockets: [unix:///var/run/docker.sock tcp://0.0.0.0:2375]

我正在嘗試使用以下方法安裝預先構建的圖像:

sudo docker pull busybox

我收到此錯誤:

sudo docker pull busybox 2014/08/18 17:56:19 Post http:///var/run/docker.sock/images/create?fromImage=busybox&tag=: dial unix /var/run/docker.sock: no such file or directory

我的 docker 設置有問題嗎?

當我執行docker pull busybox時,它會拉取圖像並下載完成。

bash-3.2$ docker pull busybox
Pulling repository busybox
a9eb17255234: Download complete 
fd5373b3d938: Download complete 
d200959a3e91: Download complete 
37fca75d01ff: Download complete 
511136ea3c5a: Download complete 
42eed7f1bf2a: Download complete 
c120b7cab0b0: Download complete 
f06b02872d52: Download complete 
120e218dd395: Download complete 
1f5049b3536e: Download complete 
bash-3.2$ docker run busybox /bin/echo Hello Doctor
Hello Doctor

我錯過了什么嗎?

當您使用boot2docker時,您不需要以sudo身份運行任何 docker 命令,因為傳入boot2docker VM 的每個命令默認都以 root 身份運行。

當您以sudo運行時會看到錯誤,因為sudo沒有設置DOCKER_HOST ,只有您的用戶可以。

您可以通過執行以下操作來確認:

$ env

然后一個

$ sudo env

並在每個輸出中尋找DOCKER_HOST

至於有一個運行腳本的 docker 文件,這樣的事情可能對你有用:

Dockerfile

FROM busybox

# Copy your script into the docker image
ADD /path/to/your/script.sh /usr/local/bin/script.sh

# Run your script
CMD /usr/local/bin/script.sh

然后你可以運行:

docker build -t your-image-name:your-tag .

這將構建您的 docker 映像,您可以通過執行以下操作來查看:

docker images

然后,要運行您的容器,您可以執行以下操作:

docker run your-image-name:your-tag

此運行命令將從您使用Dockerfile和構建命令創建的映像啟動一個容器,然后在您的script.sh完成執行后完成。

您可以使用shellinit快速設置環境

在您的命令提示符處執行:

$(boot2docker shellinit)  

這將填充和導出環境變量並初始化其他功能。

當我在終端上啟動 boot2docker-vm 時,在我的 MAC 上使用

boot2docker start

我看到以下內容

To connect the Docker client to the Docker daemon, please set:
    export DOCKER_CERT_PATH=<my things>
    export DOCKER_TLS_VERIFY=1
    export DOCKER_HOST=tcp://<ip>:2376

設置這些環境變量后,我能夠毫無問題地運行構建。

更新 [2016-04-28]如果您使用的是最新版本的 docker,您可以這樣做

eval $(docker-machine env)將設置環境

docker-machine env將打印導出語句)

如果docker service未運行,則docker pull將失敗。 確保它正在運行

:~$ ps aux | grep docker
root     18745  1.7  0.9 284104 13976 ?   Ssl  21:19   0:01 /usr/bin/docker -d

如果它沒有運行,您可以通過以下方式啟動它

sudo service docker start

對於 Ubuntu 15 及更高版本使用

sudo systemctl start docker

我也遇到了這個錯誤。 不過,我沒有使用 boot2docker ,只是在 Ubuntu 上安裝了“普通” docker(請參閱https://docs.docker.com/installation/ubuntulinux/ )。

我收到錯誤消息(“撥號 unix /var/run/docker.sock:沒有這樣的文件或目錄。您是否嘗試連接到沒有 TLS 的啟用 TLS 的守護程序?”),因為 docker守護程序尚未運行

在 Ubuntu 上,您需要啟動服務

sudo service docker start

另請參閱http://blog.arungupta.me/resolve-dial-unix-docker-sock-error-techtip64

對於 Windows 上的 boot2docker,在看到之后:

FATA[0000] Get http:///var/run/docker.sock/v1.18/version: 
dial unix /var/run/docker.sock: no such file or directory.  
Are you trying to connect to a TLS-enabled daemon without TLS?

我所做的只是:

boot2docker start
boot2docker shellinit

這產生了:

export DOCKER_CERT_PATH=C:\Users\vonc\.boot2docker\certs\boot2docker-vm
export DOCKER_TLS_VERIFY=1
export DOCKER_HOST=tcp://192.168.59.103:2376

最后:

boot2docker ssh

碼頭工人再次工作

在 Linux 中,首先在終端中執行sudo service docker start

如果您使用的是 CentOS 7,並且您已經通過 yum 安裝了 Docker,請不要忘記運行:

$ sudo systemctl start docker
$ sudo systemctl enable docker

這將啟動服務器,並在啟動時自動重新啟動它。

要設置您的環境並為將來的會話保留它,您可以執行以下操作:

echo 'export DOCKER_HOST="tcp://$(boot2docker ip 2>/dev/null):2375";' >> ~/.bashrc

然后: source ~/.bashrc

您的環境將在每個會話中設置

第一個 /var/run/docker.sock 指的是 boot2docker 虛擬機中的相同路徑。 為 windows /var/run/docker.sock 正確編寫

您,也許不是 OP,但由於您使用 docker (尤其是菜鳥)進行黑客攻擊和斜線處理的次數,可能已經有一個名為/var/run/docker.sock/的目錄。 刪除該目錄並重試。

這幫助我讓它在 Centos 7 上運行。

我已經使用離線方法安裝了 docker,並且服務器重啟后 docker 沒有運行。 所以,我執行了下面對我有用的命令!

/usr/bin/dockerd > /dev/null

暫無
暫無

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

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