Không thể kết nối với daemon Docker tại unix: /var/run/docker.sock. Là daemon docker đang chạy?


172

Tôi đã áp dụng mọi giải pháp có sẵn trên internet nhưng tôi vẫn không thể chạy Docker.

Tôi muốn sử dụng Scrapy Splash trên máy chủ của mình.

Đây là historylệnh tôi đã chạy.

docker run -p 8050:8050 scrapinghub/splash
sudo docker run -p 8050:8050 scrapinghub/splash
sudo usermod -aG docker $(whoami)
sudo docker run -p 8050:8050 scrapinghub/splash
newgrp docker
sudo docker run -p 8050:8050 scrapinghub/splash
reboot
sudo docker run -p 8050:8050 scrapinghub/splash
docker run -p 8050:8050 scrapinghub/splash

Bạn có thể thấy tôi đã cố gắng khởi động lại máy chủ của mình, nhưng nó không giúp được gì.

xem đầu ra của ps -aux | grep docker

root@mani:/var/www/html# ps aux | grep docker
root      8524  0.0  0.8 127904 13964 ?        Ssl  17:21   0:00 /usr/bin/dockerd --raw-logs
root      8534  0.0  0.3  90588  5012 ?        Ssl  17:21   0:00 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc
root      8543  0.0  0.0   8812   764 pts/1    S+   17:21   0:00 grep --color=auto docker
root     16356  0.0  0.0  17200   964 pts/1    S    17:14   0:00 newgrp docker
root     20080  0.0  0.0  17200   964 pts/1    S    17:06   0:00 newgrp docker
root     30221  0.0  0.0  17200   964 pts/1    S    17:09   0:00 newgrp docker

Nếu bạn chạy ps aux | grep docker, bạn có thấy tiến trình daemon đang chạy không?
Rome_Leader

Bản sao có thể có: stackoverflow.com/questions/21871479/
Kiếm

@Rome_Leader thấy đầu ra trong câu hỏi của tôi ...
Umair Ayub

3
hãy thử điều này: khởi động lại dịch vụ sudo
Haythem ROUIS

2
bạn có thể thấy trạng thái của bạn docker deamon bằng cách này: sudo service docker statuskiểm tra xem nó có hoạt động không
Haythem ROUIS

Câu trả lời:


161

Bạn có thể thử điều này:

systemctl start docker

Nó làm việc tốt cho tôi.

PS: sau nếu có các lệnh mà bạn không thể thực hiện mà không có sudo, hãy thử điều này:

gpasswd -a $USER docker

10
Chạy lệnh đầu tiên, tôi gặp lỗi: Failed to start docker.service: Unit docker.service is masked.Vì vậy, tôi phải chạy theo sau: systemctl unmask docker.service systemctl unmask docker.socket systemctl start docker.service
Chris Phan

50

Bạn có thể gặp lỗi này nếu docker không tắt sạch. Câu trả lời sau đây là dành cho gói snaper.

Chạy snap logs dockervà tìm kiếm những điều sau đây:

Error starting daemon: pid file found, ensure docker is not running or delete /var/snap/docker/179/run/docker.pid

Xóa tập tin đó và khởi động lại docker làm việc cho tôi.

rm /var/snap/docker/<your-version-number>/run/docker.pid
snap stop docker
snap start docker

Hãy chắc chắn rằng để thay thế <your-version-number>‍với số phiên bản thích hợp.


Làm thế nào tôi có thể ngăn chặn điều này xảy ra? Mỗi lần tôi bật PC, tôi phải gỡ bỏ docker.pid!
Hamidreza

47

Chỉ cần chạy

sudo dockerd

dockerd là dịch vụ daemon cho các container docker, vì nó không chạy trong nền nên chúng tôi không thể thực hiện bất kỳ hành động nào liên quan đến dịch vụ, cần phải khởi động lại.


10
Đây là lệnh duy nhất làm việc cho tôi. Tôi nghĩ thật nực cười khi người ta phải nhảy qua rất nhiều vòng để đưa Docker lên và chạy.
Homunculus Reticulli

3
Nó gây ra lỗi cho tôiError starting daemon: Devices cgroup isn't mounted
Vineet 'DEVIN' Dev

@fepegar Có thể bạn chưa cài đặt
docker

@YashPokar thực sự, tôi đã kết thúc việc cài đặt lại và bây giờ mọi thứ hoạt động như mong đợi. Cảm ơn.
fepegar

Chỉ có lệnh làm việc cho tôi bên trong một container docker để bắt đầu một container docker. Cần nó cho codebuild, để tạo môi trường của riêng tôi trong khi xây dựng. :-)
Chúng tôi là Borg

21

Trước tiên, hãy thử với sudo , vì người dùng hiện tại có thể không có quyền truy cập để liên lạc với docker daemon tức là docker /var/run/docker.sock

Nếu nó vẫn không hoạt động, thì sau khi cài đặt, chỉ cần dừng trình nền của docker là,

$ sudo service docker stop

Và, chạy lệnh sau để khởi động trình nền trong nền,

$ sudo nohup docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

Để làm việc với Docker dễ dàng hơn, bạn nên thêm tên người dùng của mình vào nhóm người dùng Docker. Thêm người dùng vào nhóm có thể được thực hiện bằng lệnh bên dưới

$ sudo usermod -aG docker $USER

Ngoài ra, bước này được đề cập tại tài liệu chính thức về docker Các bước cài đặt sau cho Linux ( https://docs.docker.com/engine/installation/linux/linux-postinstall/ )

Người dùng Ubuntu 16.04 có thể làm theo các bước sau,

Bên trong tệp /lib/systemd/system/docker.service thay đổi: ExecStart = / usr / bin / dockerd fd: // với ExecStart = / usr / bin / dockerd -H tcp: //0.0.0.0: 2375

Thay đổi tập tin bên trong /etc/init.d/docker :

DOCKER_OPTS = với DOCKER_OPTS = "- H **** tcp: //0.0.0.0: 2375 "

và sau đó khởi động lại máy của bạn. Và, bắt đầu chơi với docker.


1
chạy sudo nohup docker daemon -H http://tcp://0.0.0.0:2375 () -H http://unix:///var/run/docker.sockcho bash: syntax error near unexpected token ('`
Umair Ayub

1
Tôi đang chạy linux linux
Umair Ayub

ồ ... xin lỗi. Chars thêm (), cập nhật. Phiên bản nào của RHEL? Chỉ cần kiểm tra giá trị bạn nhận được với $ DOCKER_HOST?
mohan08p

$ sudo systemctl cho phép docker khởi động dịch vụ docker khi khởi động.
mohan08p

Tôi hiện đang cố gắng cài đặt Docker trên CentOS Linux release 7.3.1611 (Core)... Nhưng bây giờ lỗi là Your Linux kernel version 2.6.32-042stab116.2 is not supported for running docker. Please upgrade your kernel to 3.10.0 or newer.... tôi có thể cập nhật kernel bằng cách sử dụng yum update kernel... ???? Câu hỏi là, nó sẽ xóa tất cả mọi thứ trên máy chủ của tôi? Đó là một máy chủ trực tiếp với một trang web đang chạy trên đó, tôi không muốn làm hỏng nó.
Umair Ayub

9

Điều này thường xảy ra nếu bạn chưa dừng docker.

Để giải quyết

service docker stop
cd /var/run/docker/libcontainerd
rm -rf containerd/*
rm -f docker-containerd.pid
service docker start

sau đó "docker run ...." để tải xuống hình ảnh của bạn và khởi động container như bình thường


8

Tôi chỉ nhấn vào đây sau khi thực hiện cài đặt DOCKER mới từ các tài liệu chính. Vấn đề đối với tôi là ngay sau khi cài đặt, dịch vụ không chạy.

Các lệnh này sẽ giúp bạn đảm bảo docker hoạt động và chạy cho lệnh chạy của bạn để tìm thấy nó:

$ sudo service --status-all 
$ sudo service docker start
$ sudo service docker start

7

Tôi đang chạy root và thử bên dưới, nó hoạt động:

service docker start

export DOCKER_HOST="tcp://0.0.0.0:2375"

3
Nếu điều này hoạt động trên máy chủ của bạn, thì bạn thực sự không có mật khẩu root. Bất cứ ai có quyền truy cập vào cổng đó đều có thể chạy các lệnh dưới quyền root trên máy chủ của bạn.
BMitch

6

Tôi đã có vấn đề này sau khi đóng docker sẽ kéo một container docker pull mongo. Lúc đầu, tôi gặp phải những lỗi kỳ lạ nên tôi đã thanh trừng docker sudo apt-get purge docker.iovà cài đặt lại sudo apt-get install docker.io... tất cả những điều này chẳng làm được gì. Tôi thậm chí không thể chạy container thế giới. Cách khắc phục chính xác cho tôi ít nhất là:

systemctl unmask docker.service
systemctl unmask docker.socket
systemctl start docker.service

Sau này tôi có thể kéo mongo và chạy hello world.

Chúc mừng!


Tôi đã phải làm điều đó với Sudo trên Ubuntu 18.04
Basanth


2

sử dụng điều này trong xuất khẩu Ubuntu DOCKER_HOST = tcp: // localhost: 2375


Nếu điều này hoạt động trên hệ thống của bạn, thì bạn thực sự không có mật khẩu root. Bất cứ ai có quyền truy cập vào cổng đó đều có thể chạy các lệnh dưới quyền root trên máy chủ.
BMitch

2

export DOCKER_HOST = tcp: // localhost: 2375 hoàn hảo cho bất kỳ ai không có quyền truy cập sudo và người dùng không có quyền truy cập vào unix: ///var/run/docker.sock


Điều này cũng hữu ích cho bất kỳ ai thường không có quyền truy cập root nhưng muốn dễ dàng trở thành root trên máy chủ của bạn. Bất cứ ai có quyền truy cập vào cổng đó đều có thể chạy các lệnh dưới quyền root.
BMitch

@BMitch quan tâm đến công phu?
Fran Marzoa

@FranMarzoa từ một người dùng khác mà bạn không tin tưởng hoặc thậm chí là một máy chủ khác, bạn có thể chạy bất kỳ docker runlệnh nào với người dùng root bên trong container, đặc quyền, với các không gian tên máy chủ trên pid và mạng, và gắn hệ thống tập tin gốc ok vào hộp.
BMitch

2

Tôi đã cố chạy docker (vừa cài đặt) trong một phiên bản AWS khi thông báo xuất hiện. Tôi chỉ viếtsudo service docker start và làm việc tốt cho tôi.

Cũng xem AWS với Docker


2

nhập mô tả hình ảnh ở đây

Tôi chỉ đơn giản là quên chạy Docker Desktop trong máy mac của mình, sau khi chạy Docker Desktop, bạn sẽ ổn.


2

Ngoại lệ này xuất hiện khi dịch vụ của docker không chạy hoặc người dùng đã đăng nhập không có quyền truy cập docker và nói chung nó có trong RedHat

Sử dụng lệnh dưới đây sẽ giải quyết vấn đề

Dock dịch vụ sudo bắt đầu

nhập mô tả hình ảnh ở đây


1

Tôi đã có cùng một vấn đề cho gitlab CI đang chạy nút: lts image:

  • Tôi vừa khởi động lại docker daemon và khởi động lại container, nó hoạt động với tôi.

1

Điều này làm việc cho tôi, Nó có thể chỉ hoạt động cho bạn nếu bạn đang sử dụng Ubuntu 16 hoặc 18 (14 cũng có thể hoạt động). Dễ dàng để thử:

Chuyển đến Phần mềm Ubuntu, nhập Docker. Gỡ cài đặt docker (108 mb) nếu nó được cài đặt sẵn ở đó. Cài đặt docker Bây giờ chạy các lệnh và xem nếu cùng một lỗi đến

Lỗi:

nhập mô tả hình ảnh ở đây

Sau khi thực hiện các bước trên. nhập mô tả hình ảnh ở đây

Như bạn thấy, nó đã hoạt động :)


1

Tôi gặp vấn đề tương tự trên Linux khi tôi cài đặt docker bằng yum (yum install docker).

Giải pháp: tải xuống nhị phân docker từ trang web chính thức: cài đặt docker , giải nén và làm theo các bước cài đặt.


1

Không có câu trả lời hiện tại nào hoạt động cho phiên bản lỗi này của tôi. Tôi đang sử dụng phiên bản máy tính để bàn của Ubuntu 18. Hai lệnh sau đã khắc phục sự cố.

sudo snap connect docker:home :home

sudo snap start docker



0

Đối với tôi, giải pháp đơn giản là đảm bảo rằng tôi đã cài đặt gói Docker chính xác. Ví dụ, đối với Ubuntu, các gói không dùng nữa là:

  • bến tàu
  • docker-động cơ
  • docker.io
  • container
  • runc

Để cài đặt, hãy kiểm tra https://docs.docker.com . Các hướng dẫn được cung cấp cho Ubuntu , CentOS , DebianFedora tại thời điểm viết.


Bạn đã bỏ lỡ một số bước: theo liên kết này để ký repo. Medium.com/@sebagomez/ Kẻ
Robert

@Robert, ở trên tôi cũng tham khảo docs.docker chính thức để lấy khóa PGP. Điều này an toàn hơn so với người dùng sao chép nó từ trang web hoặc phương tiện này.
RikH

Tôi đã thử các bước trên Ubuntu và những bước này không hoạt động. Cần quá trình ký và liên kết tôi cung cấp.
Robert

@Robert, cảm ơn tôi đã xóa hướng dẫn không đầy đủ của tôi và thay vào đó chỉ tham khảo tài liệu chính thức.
RikH

0

Đảm bảo thông tin trong đường dẫn này /etc/docker/daemon.json

{
  "registry-mirror": [
    "https://registry.docker-cn.com"
  ],
  "insecure-registries": [
    "192.168.199.100:5000"
  ]
}

xóa bỏ

"insecure-registries": [
    "192.168.199.100:5000"
]

và chạy tốt nhập mô tả hình ảnh ở đây


0

Nó có thể liên quan đến không còn dung lượng đĩa trên ổ cứng. Đảm bảo bạn còn chỗ trống trên thiết bị, Docker không thể khởi động nếu không còn chỗ trống.


0

Sử dụng docker start <your_container_name>

Sau đó kết nối với cơ sở dữ liệu bằng cách sử dụng mssql -u <yourUsername> -p <yourPassword>

Nếu bạn gặp lỗi trong bước đầu tiên thì docker đang chạy và đi với bước thứ hai.

Lưu ý: Tôi sử dụng Mac làm HĐH chính của mình và đây có thể là câu trả lời tương tự cho các HĐH dựa trên Unix. Nếu không! Xin lỗi trước.


0

Tôi cũng nhận được thông báo lỗi bên dưới, sau khi cài đặt docker và chạy: docker chạy hello-world

Không thể kết nối với daemon Docker tại unix: /var/run/docker.sock. Là daemon docker đang chạy?

Đây là một giải pháp, những gì làm việc cho tôi. Môi trường - Windows 10 (Đừng quên bật trên windows: Cài đặt> Cập nhật và bảo mật> Chế độ nhà phát triển) - Ubuntu 18.04 LTS - Docker Desktop phiên bản 2.3.0.2 (45183) - Bật trong Docker Desktop: Trình bày daemon trên tcp: // localhost: 2375 không có TLS - Docker Desktop cũng phải được chạy (được kết nối với Docker Hub ... chỉ cần đăng nhập)

Sau khi cài đặt Ubuntu, cập nhật kho lưu trữ

sudo apt-get cập nhật

Để sử dụng kho lưu trữ qua HTTPS

sudo apt-get install \ apt-Transport-https \ ca-cert \ curl \ gnupg-agent \ software-property-common

Thêm khóa GPG Docker chính thức:

curl -fsSL https://doad.docker.com/linux/ubfox/gpg | sudo apt-key add -

Hãy chắc chắn rằng bạn có chìa khóa với dấu vân tay

dấu vân tay sudo apt 0EBFCD88

Cập nhật kho lưu trữ

sudo apt-get cập nhật

Cập nhật kho chứa docker

sudo add-apt-repository \ "deb [arch = amd64] https://doad.docker.com/linux/ubfox \ $ (lsb_release -cs) \ ổn định"

Cập nhật lại kho lưu trữ

sudo apt-get cập nhật

Lệnh cài đặt docker trong phiên bản: 5: 18.09.9 ~ 3-0 ~ ubfox-bionic

sudo apt-get cài đặt docker-ce = 5: 18.09.9 ~ 3-0 ~ ub Ubuntu-bionic docker-ce-cli = 5: 18.09.9 ~ 3-0 ~ ub Ubuntu-bionic containerd.io

Lệnh đặt DOCKER_HOST

xuất DOCKER_HOST = "tcp: //0.0.0.0: 2375"

Lưu ý: đặt lệnh ở trên trong hồ sơ của bạn để bắt đầu với ubunto ex: echo "export DOCKER_HOST = 'tcp: //0.0.0.0: 2375'" >> ~ / .bashrc

Thêm người dùng vào nhóm docker

sudo usermod -aG docker $ USER

Khởi động lại Ubuntu

(Đóng và mở lại cửa sổ ubfox)

Kiểm tra cài đặt (KHÔNG sử dụng thêm sudo trước các lệnh docker (nó sẽ báo lỗi), "root" của người dùng đã được đưa vào nhóm docker)

docker chạy hello-world

Thông báo dưới đây sẽ được hiển thị

Xin chào từ Docker! Thông báo này cho thấy cài đặt của bạn dường như hoạt động chính xác.

Lưu ý: nếu thất bại, hãy chạy lại lệnh: export DOCKER_HOST = "tcp: //0.0.0.0: 2375"

xuất DOCKER_HOST = "tcp: //0.0.0.0: 2375"

Tham khảo: https://docs.docker.com/engine/install/ubfox/ Phiên: CÀI ĐẶT ĐỘNG CƠ DOCKER

Đối với các phiên bản khác của docker có thể được cài đặt với ubfox, hãy xem kho lưu trữ bằng lệnh bên dưới:

apt-cache madison docker-ce

Sau đó cài đặt phiên bản mong muốn của docker:

sudo apt-get cài đặt docker-ce = docker-ce-cli = containerd.io


0

Đối với tất cả những người đang gặp vấn đề với Docker tại thời điểm cài đặt.

Một lỗi chỉ ra lỗi trong dịch vụ docker, hãy thực hiện các lệnh bên dưới.

$ sudo apt update

$ sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common

$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

$ sudo apt update

$ apt-cache policy docker-ce

$ sudo apt install docker-ce

-1

Vấn đề này có thể được giải quyết vĩnh viễn bằng cách chạy 1. systemctl cho phép docker 2. bắt đầu dịch vụ docker


Có vẻ như tôi cần bắt đầu dịch vụ service start dockerdocker mỗi khi tôi khởi động lại máy tính.
Pran Kumar Sarkar

@PranKumarSarkar Không phải nếu bạn chạy "sudo systemctl enable docker"
GabrielBB
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.