Docker tidak dapat terhubung ke daemon docker

473

Setelah saya memperbarui versi Docker saya ke 0.8.0, saya mendapatkan pesan kesalahan saat memasukkan sudo docker version:

Client version: 0.8.0
Go version (client): go1.2
Git commit (client): cc3a8c8
2014/02/19 12:54:16 Can't connect to docker daemon. Is 'docker -d' running on this host?

Dan saya telah mengikuti instruksi dan memasukkan perintah sudo docker -d, dan saya mendapatkan ini:

[/var/lib/docker|2462000b] +job initserver()
[/var/lib/docker|2462000b.initserver()] Creating server
open /var/lib/docker/aufs/layers/cf2414da53f9bcfaa48bc3d58360d7f1cfd3784e4fe51fbef95197709dfc285d: no such file or directory[/var/lib/docker|2462000b] -job initserver() = ERR (1)
2014/02/19 12:55:57 initserver: open /var/lib/docker/aufs/layers/cf2414da53f9bcfaa48bc3d58360d7f1cfd3784e4fe51fbef95197709dfc285d: no such file or directory

Bagaimana saya mengatasi masalah?

Liung
sumber
7
Apakah Anda menggunakan sudo saat menjalankan docker -d?
Ben Whaley
Saya perhatikan bahwa dalam kesalahan itu tertulis no such file or directory[/var/lib/docker|2462000b]. Apakah /var/lib/dockerada di sistem Anda? Jika tidak maka saya pikir Anda perlu menginstal ulang Docker.
Ben Whaley
3
Saya memiliki masalah yang sama (tidak dapat terhubung ke daemon yang menunjukkan 'ps' masih berjalan), kecuali saya tidak mendapatkan pesan 'file tidak ditemukan' ketika memulai daemon. / var / lib / docker memang ada.
Jonathan Hartley
Apakah Anda menggunakan buruh pelabuhan di VPS?
pigletfly
Instal desktop docker dari sini, itu akan menyelesaikannya. docs.docker.com/docker-for-mac/install
Guy Assaf

Jawaban:

642

Linux

Langkah -langkah Pasca-instalasi untuk dokumentasi Linux mengungkapkan langkah-langkah berikut:

  1. Buat grup buruh pelabuhan .
    sudo groupadd docker
  2. Tambahkan pengguna ke grup buruh pelabuhan .
    sudo usermod -aG docker $ (whoami)
  3. Logout dan log in kembali untuk memastikan buruh pelabuhan berjalan dengan izin yang benar.
  4. Mulai buruh pelabuhan.
    mulai layanan buruh pelabuhan sudo

Mac OS X

Seperti yang dikatakan Dayel Ostraco diperlukan untuk menambahkan variabel lingkungan:

docker-machine start # Start virtual machine for docker
docker-machine env  # It's helps to get environment variables
eval "$(docker-machine env default)" # Set environment variables

The docker-machine startperintah output komentar untuk memandu proses.

molavec
sumber
Iya. Ini masalah bagi saya. Saya menambahkan pengguna saya ke grup buruh pelabuhan dan sekarang saya dapat terhubung ke daemon. Terima kasih
Bogdan
FWIW, tautan ke bagian spesifik adalah ini
asimetris
20
Jika, karena alasan tertentu, Anda tidak ingin keluar, Anda dapat menggunakan newgrpperintah untuk memulai shell baru di grup baru ini. Seperti ini: newgrp docker.
Denilson Sá Maia
sudo chown $ USER: $ USER / path / ke / docker / binary
Ivor Scott
Saya tidak punya waktu untuk memulai ulang bash. Begitu alias docker='sudo docker'juga triknya. : p
LovaBill
150

Linux

Untuk menjalankan docker daemon di Linux (dari CLI ), jalankan:

$ sudo service docker start # Ubuntu/Debian

Catatan: Lewati $karakter saat menyalin dan menempel.

Pada RedHat / CentOS, jalankan: sudo systemctl start docker.

Untuk menginisialisasi sistem file "base", jalankan:

$ sudo service docker stop
$ sudo rm -rf /var/lib/docker
$ sudo service docker start

atau secara manual suka:

$ sudo docker -d --storage-opt dm.basesize=20G

Instal docker-machinedi Linux

Untuk menginstal binari mesin di Linux:

  • secara lokal:

    install -vm755 <(curl -L https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) $HOME/bin/docker-machine
    
  • global:

    sudo bash -c 'install -vm755 <(curl -L https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) /usr/local/bin/docker-machine'
    

macOS

Pada macOS dockerbiner hanya klien dan Anda tidak dapat menggunakannya untuk menjalankan daemon docker, karena daemon Docker menggunakan fitur kernel khusus Linux, oleh karena itu Anda tidak dapat menjalankan Docker secara native di OS X. Jadi, Anda harus menginstal docker-machineuntuk membuat VM dan lampirkan.

Instal docker-machinedi macOS

Jika Anda belum memiliki docker-machineperintah, instal dengan menggunakan salah satu metode berikut:

  • Menggunakan Brew perintah: brew install docker-machine docker.
  • secara manual dari GitHub :

    install -v <(curl https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) /usr/local/bin/docker-machine
    

Lihat: Memulai dengan Docker untuk Mac .

Konfigurasikan docker-machinedi macOS

Untuk memulai Mesin Docker melalui Homebrew, jalankan:

brew services start docker-machine

Untuk membuat defaultmesin (jika Anda tidak memilikinya, lihat docker-machine ls:):

docker-machine create --driver virtualbox default

Kemudian atur lingkungan untuk klien Docker:

eval "$(docker-machine env default)"

Kemudian periksa kembali dengan mencantumkan kontainer:

docker ps

Lihat: Memulai dengan Mesin Docker dan VM lokal .


Instal Docker.app di macOS

Atau dengan solusi di atas, Anda dapat menginstal aplikasi Docker dengan:

brew cask install docker

Lihat posting ini untuk lebih jelasnya . Lihat juga: Tidak dapat terhubung ke daemon Docker di macOS

kenorb
sumber
1
sudo service docker start berfungsi dengan Docker 1.9.1 di Ubuntu 14.04
Terima kasih. inilah yang bekerja untuk saya di Ubuntu 14.04. semuanya gagal.
nyxee
Ini adalah satu-satunya hal yang bekerja untuk saya di Mac OSX dengan perangkat keras yang lebih tua dari 2010. Saya harus menginstal docker-toolboxdari docs.docker.com/toolbox/toolbox_install_mac
Vikram
2
Saya perlu menginstal docker-compose, docker-machine, dan docker via Homebrew kemudian bekerja dengan baik!
Entalpi
Saya punya masalah ini pada CentOS 7.6 dengan buruh pelabuhan 18 sudo rm -rf /var/lib/dockerdan kemudian restart melakukan trik. Saya benar-benar macet dan tidak ada solusi lain yang bekerja untuk saya.
Ashkan
142

Jika Anda menjalankan Docker pada OS X, menjalankan eval berikut telah bekerja untuk saya.

eval "$(docker-machine env default)"

Jika Anda memilih untuk tidak harus menjalankan pernyataan eval ini pada setiap sesi terminal, Anda dapat menambahkan ini ke bash_profile:

#Docker
eval "$(docker-machine env default)"

Pastikan untuk memulai kembali sesi terminal atau menjalankan sumber aktif bash_profileagar perubahan diterapkan.

Dayel Ostraco
sumber
3
Sama di sini, jika saya mencoba ini sendirian, saya sering mendapatkan Error checking TLS connection: Host is not running... menjalankan eval ini setelah perintah docker-machine start defaultmelakukan trik.
Emilio Ferrucci
100

Setelah penyelidikan terperinci, masalah ini tampaknya terjadi setiap kali setelah Mac OS X di-boot ulang (atau mesin virtual Docker di-restart) yang mencegah klien Docker terhubung ke daemon Docker.

Untuk mengatasi masalah ini, Anda dapat:

A) Instal ulang Docker Toolbox menggunakan penginstal resmi ( https://www.docker.com/products/docker-toolbox ), atau cukup

B) Jalankan perintah berikut secara berurutan:

# First make sure that the virtual machine is running
docker-machine start default

# Regenerate TLS connection certs, requires confirmation
docker-machine regenerate-certs default

# Finally, set env
eval "$(docker-machine env default)"

C) Sama seperti (B), Anda juga dapat menyalin dan menempelkan baris berikut untuk menjalankan ketiga perintah:

docker-machine start default; docker-machine regenerate-certs default; eval "$(docker-machine env default)"

Jika Anda mendapatkan kesalahan berikut:

Error getting SSH command: Something went wrong running an SSH command!
command : cat /etc/os-release
err     : exit status 255
output  :

jalankan kembali ketiga perintah di lain waktu, dan itu akan bekerja untuk yang kedua kalinya.

KAD
sumber
6
Saya menerima Host tidak ada: "default"
Roman Gaufman
@RomanGaufman: apakah ini cocok untuk Anda: docker-machine start default?
KAD
1
@RomanGaufman Saya harus me-restart terminal saya sebelum perintah berhasil dijalankan.
anon58192932
Apakah ini karena ip kotak virtual vm berubah setiap kali Anda me-reboot mac Anda?
Cui Pengfei 崔鹏飞
@ Kesalahan RomanGaufman diselesaikan dengan jawaban (saat ini) di bawah: stackoverflow.com/a/34887761/634576
Dave Schweisguth
47

Ini biasanya terjadi ketika Anda tidak berada dalam dockergrup. Anda dapat menambahkan diri Anda ke dockergrup dengan:

sudo usermod -aG docker yourusername

atau

sudo usermod -aG docker $(whoami)

Setelah ini, Anda harus keluar dan masuk kembali ke server.

Atau, Anda bisa sudosetiap perintah Docker.

nPcomp
sumber
5
dan jika grup tidak ada: sudo groupadd docker
izy
30

Jika semua solusi lain di atas tidak berhasil, Anda dapat mencoba memeriksa kepemilikan /var/run/docker.sock:

ls -l /var/run/docker.sock

Jika Anda bukan pemiliknya, maka ubah kepemilikan dengan perintah:

sudo chown *your-username* /var/run/docker.sock

Kemudian Anda dapat melanjutkan dan mencoba menjalankan perintah Docker tanpa repot: D

kevthanewversi
sumber
1
Saya sudah mulai dengan jawaban ini, dan ini membantu saya!
Andrzej Martyna
2
Masalah dengan pendekatan ini adalah bahwa, Anda harus mengulangi langkah ini setiap kali daemon dihidupkan ulang
MFIhsan
Hai @MFIhsan, sys-admin yang cerdas akan memberitahu Anda untuk hanya membuat skrip bash dari perintah-perintah itu dan & menambahkannya ke crontab untuk menjalankannya di reboot / startup seperti yang dijelaskan di sini> stackoverflow.com/a/29247942/3469960
kevthanewversi
Pengguna biasa tidak boleh memiliki kaus kaki! Jika Anda tidak memiliki kaus kaki maka pastikan Anda berada dalam kelompok roda dan kelompok kaus kaki itu milik ... bukan kelompok pemilik kaus kaki!
CrazyMerlin
16

Cara terbaik untuk mengetahui mengapa Docker tidak berfungsi adalah menjalankan daemon secara manual.

$ sudo service docker stop
$ ps aux | grep docker  # do this until you don't see /usr/bin/docker -d
$ /usr/bin/docker -d

Daemon Docker masuk ke STDOUT, sehingga akan mulai memuntahkan apa pun yang dilakukannya.

Inilah masalah saya:

[8bf47e42.initserver()] Creating pidfile
2015/01/11 15:20:33 pid file found, ensure docker is not running or delete /var/run/docker.pid

Ini karena instance telah dikloning dari mesin virtual lain. Saya hanya perlu menghapus pidfile, dan semuanya bekerja setelahnya.

Tentu saja, alih-alih dengan membabi buta menganggap ini akan berhasil, saya sarankan menjalankan daemon secara manual sekali lagi dan meninjau output log untuk kesalahan lain sebelum memulai layanan cadangan.

Robert Elwell
sumber
1
Itu juga yang membantu saya menemukan masalah ini (sayangnya saya melihat jawaban Anda setelah itu). Milik saya adalah apparmorpaket yang hilang .
Pierre de LESPINAY
Solusi ini berhasil untuk saya. Setelah saya menghapus /var/run/docker.pid, saya akhirnya dapat memulai buruh pelabuhan.
jirikadlec2
3
Peringatan: '-d' sudah usang, itu akan segera dihapus. Lihat penggunaan. PERINGATAN [0000] sebagai gantinya gunakan 'docker daemon'.
juanmf
3
bendera disediakan tetapi tidak didefinisikan: -d
Luís de Sousa
Untuk menjalankan daemon buruh pelabuhan secara manual dalam versi terbaru dengan debug diaktifkan gunakan:dockerd -D
Luis Miguel Serrano
14

Jika Anda menerima pesan Can't connect to docker daemon. Is 'docker -d' running on this host?, Anda dapat memeriksanya dengan docker version.

Jika Anda melihat informasi seperti Docker Client sedang berjalan. tetapi Docker Server tidak , itu jelas Anda harus memulai server Docker.

Di CentOS, Anda dapat menggunakan serviceuntuk memulai atau menghentikan server Docker.

$ sudo service docker stop
$ sudo service docker start

Kemudian, setelah Anda mengetik docker version, Anda akan mendapatkan informasi dari Docker Client dan Docker Server , dan daemon Docker telah dimulai.

Shawn Wang
sumber
2
sudo service docker startjuga bekerja untuk saya di Ubuntu 14.04.
funroll
Cent os 7, harus melakukannya setiap kali saya mulai buruh pelabuhan.
Paddy
@ Paddy Anda harus mengaktifkan layanan setelah menyatakannya, dan itu akan berjalan jika sistem dijalankan dan tetap berjalan di latar belakang.
CrazyMerlin
Semua jawaban ini yang mengatakan: "Anda perlu sudo systemctl start docker" selalu menganggap ada layanan buruh pelabuhan untuk memulai. Jika ada masalah dalam menginstal docker, file konfigurasi layanan bahkan mungkin tidak ada, dalam hal ini Anda akan mendapatkan: "Unit docker.service tidak dimuat"
CrazyMerlin
12

Lakukan ps aux | grep dockeruntuk melihat apakah daemon sedang berjalan. Jika tidak dijalankan/etc/init.d/docker start

Reza S
sumber
5
Saya memiliki masalah yang sama. 'ps' menunjukkan bahwa proses buruh pelabuhan saya masih berjalan.
Jonathan Hartley
berhenti dan mulai buruh pelabuhan (yang sudah berjalan) meluruskan saya.
kyle
14
sudo service docker startmemberi tahu saya "buruh pelabuhan mulai / berjalan, proses 4633" kemudian sudo service docker statusmemberi tahu "buruh pelabuhan berhenti / menunggu"
Pierre de LESPINAY
12

Saya me-restart Docker setelah menginstalnya:

$ sudo service docker stop
$ sudo service docker start

Dan itu berhasil.

Galai
sumber
9

Saya punya masalah serupa. Saya harus keluar dan masuk lagi ke shell karena saya baru saja menginstal Docker dan perintah berikut tidak muncul di lingkungan saya.

export DOCKER_HOST=127.0.0.1:4243 >> ~/.bashrc
kayn
sumber
3
Saya hanya perlu keluar dan masuk kembali. Semua sudah diperbaiki!
Mark Shust di M.academy
Ini menyelesaikan masalah saya! Saya menjalankan Ubuntu 16.04 sebagai WSL. Satu-satunya hal yang harus saya ubah adalah nomor port default: export DOCKER_HOST = 127.0.0.1: 2375 >> ~ / .bashrc
Alex
9

Saya telah menghadapi masalah ini, dan saya me-restart Docker menggunakan perintah-perintah ini:

$ sudo service docker stop
$ sudo service docker start

Tapi saya tidak menyelesaikan masalah saya, karena saya lupa untuk mengeksekusi perintah Docker saya tanpa sudo. Bagi mereka yang menghadapi masalah ini, coba periksa itu.

Mencoba

$ sudo docker info

alih-alih ini:

$ docker info
Taha Emara
sumber
Ini persis masalah saya ketika mencoba berjalan docker builddi Ubuntu Xenial.
ashnazg
9

Anda bisa menggunakan perintah

sudo service docker stop && sudo service docker start

untuk memulainya saja.

kvadityaaz
sumber
3
Atau sudo service docker restart, lebih mudah 😊
fr1sk
8

Saya memiliki kesalahan yang sama dan mencoba docker-machine regenerate-certsatau eval..tidak berhasil untuk saya.

Ini pada OS X 10.11.3 (El Capitan) dan Docker v1.10.1. Saya dapat memperbaikinya hanya dengan menghapus dan menciptakan kembali mesin docker. Sumber

Jika berjalan docker-machine ls, ini menunjukkan Anda output yang mirip dengan yang di bawah ini;

BURUH PELABUHAN

Tidak dikenal

GALAT

Tidak dapat meminta versi buruh pelabuhan: Tidak dapat terhubung ke titik akhir mesin buruh pelabuhan

Coba lepaskan mesin Docker Anda dengan;

docker-machine rm -f default

Di mana defaultnama mesin Docker Anda. Kemudian;

docker-machine create -d virtualbox default

Menciptakan mesin Docker baru.

Periksa kembali bahwa semuanya terlihat normal sekarang (tidak ada kesalahan atau Docker tidak dikenal) dengan:

docker-machine ls

Akhirnya jangan lupa untuk menjalankan "$(docker-machine env default)"sebelum Anda melanjutkan atau menjalankan Terminal Quickstart Docker yang melakukannya untuk Anda ...

Kerem
sumber
6

Saya memiliki masalah yang sama - "Tidak dapat terhubung ke docker daemon." (Kecuali saya tidak mendapatkan kesalahan 'file tidak ditemukan' ketika mencoba memulai server.)

'ps' menunjukkan bahwa "/ usr / bin / docker -d" masih berjalan

Saya menyadari bahwa saya tidak pernah benar-benar berhasil menjalankan server sendiri. Setiap upaya telah dilakukan

...
2014/03/24 21:57:29 pid file found, ensure docker is not running or delete /var/run/docker.pid

Jadi saya terlambat menyadari bahwa menginstal buruh pelabuhan mungkin mendaftarkan daemon dengan pemula, yang telah memulainya untuk saya. Oleh karena itu, mencoba untuk membunuh daemon untuk me-restart secara manual gagal (operasi tidak diizinkan). Jadi saya melakukan

sudo kill -9 <PID>

pada proses daemon. Daemon lain segera menggantikannya, dan yang baru ini TIDAK SEKARANG membiarkan klien CLI saya terhubung:

$ sudo docker info
Containers: 0
Images: 0
Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Dirs: 0
WARNING: No memory limit support
WARNING: No swap limit support
Jonathan Hartley
sumber
6

Coba tambahkan pengguna saat ini ke dockergrup:

sudo usermod -aG docker $USER

Kemudian logout dan login.

dormi330
sumber
6

Gunakan aplikasi Docker CE

macOS

Gunakan aplikasi Edisi Komunitas Docker baru untuk macOS. Sebagai contoh:

  1. Copot semua paket Docker Homebrew yang telah Anda instal sejauh ini:

    brew uninstall docker-compose
    brew uninstall docker-machine
    brew uninstall docker
    
  2. Instal aplikasi secara manual atau melalui Homebrew-Cask :

    brew cask install docker
    

    Catatan: Aplikasi ini akan membuat link yang diperlukan untuk docker, docker-compose, docker-machine, dll

  3. Setelah menjalankan aplikasi, checkout ikon paus Docker di menu status.

  4. Sekarang Anda harus dapat menggunakan docker, docker-compose, docker-machineperintah seperti biasa di Terminal .

Terkait:

Linux / Windows

Unduh Docker CE dari halaman unduhan dan ikuti instruksi.

kenorb
sumber
Catatan 2018-5-20: aplikasi Docker CE di macOS cukup jelek. setiap kali saya membukanya itu hanya membeku, tidak dapat melakukan apa-apa. Saya mencoba Google dan memperbaiki masalah, sejauh ini masih bekerja
NamNamNam
1
Ini adalah jawaban yang benar untuk masalah yang dilaporkan, terima kasih!
paranza
6

Saya tahu bahwa sudah ada banyak jawaban di pos ini. Hanya saya ingin menambahkan satu jawaban sederhana yang memecahkan masalah yang disebutkan di atas.

sudo systemctl start docker

Jalankan perintah di atas dan itu akan memulai semua thread / layanan terkait buruh pelabuhan.

Prakasam Dhamodhiran
sumber
5

Saya baru saja mengalami masalah yang sama, berjalan di Amazon AWS .

Inilah yang saya coba:

  • Set up docker-machinesecara lokal dengan instance AWS yang sudah ada
  • Penyiapan generik yang digunakan
  • Agak terhubung, tetapi karena port jarak jauh ditutup, gagal
  • Setelah itu, daemon Docker menolak untuk memulai, tetapi menjalankan dockerdternyata berhasil ...

Itu diuji berikut pada mesin jarak jauh:

service docker start # Also restart, no success
systemctl start docker # Also restart, no success
dockerd # Success

Saya menghapus /var/lib/dockerdan menghapus semuanya, tetapi tidak ada keberhasilan setelah instalasi ulang. Sayangnya saya tidak memiliki log yang disimpan dari kegagalan, tetapi docker.servicehanya menolak untuk memulai.

Namun, yang akhirnya menyelesaikan masalah saya pada dasarnya:

sudo usermod -aG docker $(whoami)
Deko
sumber
4

Mengikuti situs DOC Docker: Kelola Docker sebagai pengguna non-root

1) Buat Grup Docker

sudo groupadd docker 

2) Jadikan pengguna milik grup buruh pelabuhan untuk mendapatkan hak istimewa grup.

sudo usermod -aG docker $USER

Periksa apakah variabel lingkungan DOCKER_HOST disetel untuk shell Anda.

env | grep DOCKER_HOST

Jika ada,

unset DOCKER_HOST

Maka ini harus bekerja:

docker run hello-world
blasrodri
sumber
1
Anda adalah penyelamat yang unset DOCKER_HOSTbekerja untuk saya
user3014595
4

Jika Anda menjalankan OS X menggunakan alat Docker, ikuti ini.

Mulai ulang daemon dan konfigurasikan lingkungan Anda:

docker-machine restart

Lalu

docker-machine env

Akhirnya,

eval $(docker-machine env)

Untuk menguji daemon sedang berjalan:

docker ps -aatau docker-machine ls. Ini akan mencantumkan semua wadah.

Ermias K
sumber
2

Saya mendapat masalah yang sama. Dalam CentOS 6.5:

ps aux |grep `cat /var/run/docker.pid`

Jika itu menunjukkan tidak ada proses daemon Docker ada, maka saya ketik:

docker -d

Lalu Ctrl+ Duntuk menghentikan Docker. Karena kami menggunakan -dopsi, Docker akan berjalan sebagai daemon. Sekarang kita bisa melakukan:

service docker start

Maka saya bisa melakukan docker pull centos. Itu saja.

CATATAN: Jika ini tidak berhasil, Anda dapat mencoba yum update, dan kemudian ulangi lagi, karena saya yum installsebelum ini.

wuranbo
sumber
2

The Docker layanan mungkin tidak berjalan.

Jika Anda menggunakan RedHat / Fedora / CentOS, silakan coba ini:

sudo systemctl start docker

Jika Anda menggunakan Ubuntu / Debian:

sudo service start docker

Docker akan mulai berjalan di host Anda dan masing-masing port.

Aamir M Meman
sumber
1

Periksa apakah Anda menggunakan Mesin Docker :)

Jalankan docker-machine env defaultharus melakukan trik.

Karena menurut dokumentasi:

Docker Machine adalah alat yang memungkinkan Anda menginstal Docker Engine pada host virtual, dan mengelola host dengan docker-machineperintah. Anda dapat menggunakan Mesin untuk membuat host Docker di Mac lokal Anda atau kotak Windows, di jaringan perusahaan Anda, di pusat data Anda, atau di penyedia cloud seperti AWS atau Digital Ocean.

Dengan menggunakan docker-machineperintah, Anda dapat memulai, memeriksa, menghentikan, dan memulai kembali host yang dikelola, meningkatkan klien Docker dan daemon, dan mengkonfigurasi klien Docker untuk berbicara dengan host Anda.

Arahkan CLI Mesin pada host yang berjalan dan dikelola, dan Anda dapat menjalankan dockerperintah langsung pada host itu. Misalnya, menjalankan docker-machine env defaultke titik ke host disebut default, ikuti petunjuk pada layar untuk menyelesaikan envsetup, dan menjalankan docker ps, docker run hello-worlddan sebagainya.

https://docs.docker.com/machine/overview/

Bob
sumber
1
  1. Saya juga punya masalah yang sama. Masalahnya adalah dalam soket yang dialokasikan untuk docker-daemon dan docker-client.
  2. Pertama, izin tidak ditetapkan untuk docker-client di docker.sock Anda dapat mengaturnya menggunakan "sudo usermod-aG docker $ USER"
  3. Kemudian periksa file bash Anda di mana buruh pelabuhan-klien berjalan, Bagi saya itu pada 0,0.0.0:2375, sedangkan docker-daemon berjalan pada soket unix. (Itu diatur dalam file konfigurasi dockerd).
  4. Komentari bash-line dan itu akan berfungsi dengan baik.
  5. Tetapi jika Anda ingin membuatnya bekerja pada port TCP dan bukannya unix socket, ubah file konfigurasi dockerd dan atur di 0.0.0.0.2375 dan pertahankan baris dalam bash seperti jika ada atau atur ke 0.0.0.0: 2375.
Nilesh Kande
sumber
1

Untuk memperbaikinya, Anda perlu mengeluarkan perintah berikut di terminal. Saya akan menjelaskan setiap langkah:

# Uninstall Docker from apt packages
$ sudo apt-get remove docker docker.io

# Remove it from the libraries just to be
# sure it's gone forever
$ sudo rm -rf /var/lib/docker/*

Sekarang, jika Anda ingin menyederhanakan banyak hal dan mendapatkan lebih banyak waktu, Anda dapat menjalankan initskrip saya dengan parameter installDocker:

# Pull the init script from GitHub
$ wget https://github.com/dminca/dotfiles/blob/master/init

# Add rights to run the script
$ chmod 755 init

# Just run the script with the installDocker parameter
$ ./init installDocker

Reboot adalah opsional, tetapi saya sarankan Anda melakukannya untuk memastikan semua berjalan lancar.

Daniel Andrei Mincă
sumber
1

Saya memiliki masalah yang sama dengan menjalankan Docker 1.10 di Ubuntu 14.04 dan tidak ada jawaban yang diberikan yang berfungsi. Bagi saya, perbaikannya adalah menentukan driver penyimpanan saat menjalankan daemon Docker.

sudo docker daemon --storage-driver=devicemapper
Yatit Thakker
sumber
1

Jika Anda menggunakan gitlab-ci / gitlab-runners, Anda mendapatkan kesalahan itu jika Anda tidak memiliki izin untuk mengakses /var/run/docker.sock.

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock

Untuk memecahkan masalah:

sudo usermod -aG docker gitlab-runner

Verifikasi dengan:

sudo -u gitlab-runner -H docker info

Semoga itu bisa membantu.

Tobias Ernst
sumber
0

Jika regenerasi sertifikat TLS tidak berfungsi

docker-machine regenerate-certs default

Coba mulai ulang mesin buruh pelabuhan dan atur variabel env:

docker-machine restart default
eval $(docker-machine env default)

Periksa apakah mesin berjalan dengan:

docker-machine ls

atau sebagai alternatif

docker run hello-world

Ini berhasil untuk saya. Namun, jika Anda masih belum mengaktifkan daemon, halaman pemecahan masalah Docker merinci proses untuk menghentikan, menghapus, dan membuat mesin baru.

nikheel
sumber
0

Saya juga mendapat masalah "Tidak dapat terhubung ke daemon Docker. Apakah daemon docker berjalan pada host ini?".

Saya lupa menggunakan sudo. Semoga ini akan membantu sebagian dari kita.

$:docker images
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

$:sudo docker images
REPOSITORY   TAG   IMAGE ID   CREATED   SIZE
Habeeb Perwad
sumber