lỗi docker: /var/run/docker.sock: không có tệp hoặc thư mục như vậy


86

Tôi mới đến docker. Tôi có một tập lệnh shell tải dữ liệu vào impala và tôi muốn một tệp docker chạy xây dựng hình ảnh và chạy vùng chứa. Tôi đang sử dụng mac, đã cài đặt boot2docker và đã DOCKER_HOSTthiết lập env.

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]

Tôi đang cố gắng chỉ cài đặt một hình ảnh được tạo sẵn bằng cách sử dụng:

sudo docker pull busybox

Tôi gặp lỗi này:

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

Có gì sai với thiết lập docker của tôi không?

Khi tôi thực hiện a docker pull busybox, Nó sẽ kéo hình ảnh và tải xuống hoàn tất.

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

Tui bỏ lỡ điều gì vậy?


Tôi đã gặp vấn đề tương tự. Tôi đã khởi động lại máy tính xách tay của mình. vì vậy nó bắt đầu làm việc cho tôi. (xem docs.docker.com/installation/ubuntulinux ) Họ cũng đã đề cập đến việc khởi động lại máy tính.
NehaG

đã làm việc cho tôi khi tôi kết nối với internet, tôi không biết tại sao nó lại xảy ra :(
Sai Ram

Câu trả lời:


87

Bạn không cần phải chạy bất kỳ lệnh docker nào như sudokhi bạn đang sử dụng boot2dockervì mọi lệnh được chuyển vào boot2dockerVM sẽ chạy dưới dạng root theo mặc định.

Bạn gặp lỗi khi đang chạy sudosudochưa DOCKER_HOSTđặt env, chỉ người dùng của bạn mới làm vậy.

Bạn có thể xác nhận điều này bằng cách:

$ env

Sau đó a

$ sudo env

Và tìm kiếm DOCKER_HOSTtrong mỗi đầu ra.

Đối với việc có một tệp docker chạy tập lệnh của bạn, một cái gì đó như thế này có thể phù hợp với bạn:

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

Sau đó, bạn có thể chạy:

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

Điều này sẽ xây dựng hình ảnh docker của bạn, mà bạn có thể thấy bằng cách thực hiện:

docker images

Sau đó, để chạy vùng chứa của bạn, bạn có thể thực hiện:

docker run your-image-name:your-tag

Lệnh chạy này sẽ bắt đầu một vùng chứa từ hình ảnh bạn đã tạo bằng Dockerfilelệnh xây dựng và của bạn, sau đó lệnh này sẽ kết thúc khi bạn script.shthực hiện xong.


1
Xin lỗi về sự thiếu hiểu biết của tôi nhưng tôi không nghĩ rằng tôi đã thành công trong việc xây dựng. "docker images": cho 2014/08/19 11:11:45 Nhận http: ///var/run/docker.sock/v1.13/images/json: dial unix /var/run/docker.sock: no tệp hoặc thư mục đó. Docker có nên được đặt trong thư mục chính và nó có thể được đặt với tên nào không? Nó có giống với "tên-hình ảnh" không?
user1189851

Bạn có thể dán lệnh bạn đang sử dụng để xây dựng hình ảnh docker không? Có vẻ như bạn vẫn đang sử dụng sudo trên máy OSX của mình khi không nên.
Chris McKinnel

$ docker build -t / Users / ig / Documents / tests / hellodocker. 2014/08/19 11:18:09 Tên không gian tên () không hợp lệ, chỉ [a-z0-9_] được phép, kích thước từ 4 đến 30; và hellodocker chỉ có nội dung của dockerfile mà bạn đã cung cấp. cảm ơn rất nhiều.
user1189851

Vâng bạn đang cố gắng để gắn thẻ ảnh Docker của bạn với một đường dẫn tập tin - thử cái gì khác sau -tnhư your-image-name:a-tag.
Chris McKinnel

Làm ơn cho tôi dòng lệnh. Tôi đang làm rối một cái gì đó. tệp docker của tôi là hellodocker và đường dẫn được đưa ra ở trên.
user1189851

45

Bạn có thể nhanh chóng thiết lập môi trường của mình bằng shellinit

Tại dấu nhắc lệnh của bạn, hãy thực thi:

$(boot2docker shellinit)  

Điều đó sẽ điền và xuất các biến môi trường và khởi tạo các tính năng khác.


26

Trên máy MAC của tôi khi tôi khởi động boot2docker-vm trên thiết bị đầu cuối bằng cách sử dụng


boot2docker start

Tôi thấy cái sau


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

Sau khi thiết lập các biến môi trường này, tôi có thể chạy bản dựng mà không gặp sự cố.

Cập nhật [2016-04-28] Nếu bạn đang sử dụng phiên bản docker gần đây, bạn có thể thực hiện

eval $(docker-machine env) sẽ thiết lập môi trường

( docker-machine envsẽ in các câu lệnh xuất)


2
Bạn cũng có thể thêm chúng vào hồ sơ đầu cuối của mình để tiết kiệm thời gian. Vm sẽ thông báo cho bạn rằng họ đã được thiết lập.
Joe Susnick

25

docker pullsẽ thất bại nếu docker servicekhông chạy. Đảm bảo rằng nó đang chạy bằng

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

Nếu nó không chạy, bạn có thể bắt đầu nó bằng cách

sudo service docker start

Để sử dụng Ubuntu 15 trở lên

sudo systemctl start docker


16

Tôi cũng gặp lỗi này. Mặc dù vậy, tôi không sử dụng boot2docker mà chỉ cài đặt docker "thuần túy" trên Ubuntu (xem https://docs.docker.com/installation/ubuntulinux/ ).

Tôi gặp lỗi ("quay số unix /var/run/docker.sock: không có tệp hoặc thư mục nào như vậy. Bạn đang cố kết nối với daemon hỗ trợ TLS mà không có TLS?") Vì trình nền docker chưa chạy .

Trên Ubuntu, bạn cần khởi động dịch vụ :

sudo service docker start

Xem thêm http://blog.arungupta.me/resolve-dial-unix-docker-sock-error-techtip64


9

Đối với boot2docker trên Windows, sau khi xem:

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?

Tất cả những gì tôi đã làm là:

boot2docker start
boot2docker shellinit

Điều đó tạo ra:

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

Cuối cùng:

boot2docker ssh

Và docker hoạt động trở lại


6

Trong Linux, trước hết thực thi sudo service docker starttrong thiết bị đầu cuối.


5

Nếu bạn đang sử dụng CentOS 7 và bạn đã cài đặt Docker qua yum, đừng quên chạy:

$ sudo systemctl start docker
$ sudo systemctl enable docker

Thao tác này sẽ khởi động máy chủ, cũng như tự động khởi động lại khi khởi động.


4

Để thiết lập môi trường của bạn và giữ nó cho các phiên trong tương lai, bạn có thể làm:

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

Sau đó: source ~/.bashrc

Và môi trường của bạn sẽ được thiết lập trong mỗi phiên


0

/Var/run/docker.sock đầu tiên đề cập đến cùng một đường dẫn trong máy ảo boot2docker của bạn. Viết chính xác cho windows /var/run/docker.sock


Bạn có thể thêm một số giải thích ở đây? Ngoài ra, tôi nghĩ rằng người dùng đang sử dụng máy mac.
giây

0

Bạn, có thể không phải là OP, nhưng ai đó có thể có một thư mục /var/run/docker.sock/đã được gọi là do bạn đã hack và cắt bao nhiêu lần để mọi thứ ổn định với docker (đặc biệt là noobs). Xóa thư mục đó và thử lại.

Điều này đã giúp tôi trên đường đưa nó hoạt động trên Centos 7.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.