Saya menginstal docker-machine 0.1.0 dan docker-compose 1.1.0 pada Mac OS 10.8.5.
Mesin docker berjalan normal dan dapat terhubung dengan mesin docker ssh.
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
dev * virtualbox Running tcp://192.168.99.100:2376
Namun tidak dapat terhubung dari docker-compose.
$ docker-compose up
Tidak dapat terhubung ke daemon Docker di http + unix: //var/run/docker.sock - apakah ini berjalan?
Jika berada di lokasi yang tidak standar, tentukan URL dengan variabel lingkungan DOCKER_HOST.
Dockerfile dan docker-compose.yml saya ada di sini.
Dockerfile
FROM centos:centos7
DOCKER_HOST tcp://192.168.99.100:2376
docker-compose.yml
web:
build: .
Kenapa tidak bisa terhubung? Ada ide?
docker
docker-compose
DIGITALSQUAD
sumber
sumber
docker-machine
dijalankan sebagai root? Saya baru saja datang ke sini dengan masalah yang sama pada Ubuntu dan itu adalah izin pada soket -sudo
melakukan trik.sudo service docker restart
atausudo service docker start
saya menyelesaikannya dengan ini.Jawaban:
Mesin Docker sedang berjalan. Tetapi Anda perlu mengekspor beberapa lingkungan untuk terhubung ke mesin Docker. Secara default,
docker
klien CLI berusaha berkomunikasi dengan daemon menggunakanhttp+unix://var/run/docker.sock
(seperti yang ditunjukkan dalam pesan kesalahan).Ekspor variabel lingkungan yang benar menggunakan
eval $(docker-machine env dev)
dan kemudian coba lagi. Anda juga bisa menjalankannyadocker-machine env dev
untuk melihat variabel lingkungan yang akan diekspor. Perhatikan bahwa salah satunyaDOCKER_HOST
, sama seperti pesan kesalahan menyarankan Anda mungkin perlu mengatur.sumber
eval "$(docker-machine env default)"
) ke dalam nampan / postactivate Anda untuk memastikan selalu mutakhir.$ eval $(docker-machine env dev) Command 'docker-machine' not found, but can be installed with: sudo snap install docker
Solusi sederhana untuk saya:
sudo docker-compose up
UPDATE 2016-3-14: Di beberapa titik dalam proses instalasi buruh pelabuhan (atau menulis buruh pelabuhan?) Ada saran dan contoh untuk menambahkan nama pengguna Anda ke grup "buruh pelabuhan". Ini memungkinkan Anda untuk menghindari "sudo" sebelum semua perintah buruh pelabuhan, seperti:
Perhatikan dengan seksama pada output dari perintah install (baik docker & install ke-2 untuk docker-compose) dan Anda akan menemukan langkah yang diperlukan. Itu juga didokumentasikan di sini: https://subosito.com/posts/docker-tips/
PEMBARUAN 2017-3-9
Petunjuk pemasangan Docker telah diperbarui di sini.
Langkah-langkah pasca pemasangan untuk Linux
Bagian ini berisi prosedur opsional untuk mengonfigurasi host Linux agar berfungsi lebih baik dengan Docker.
Kelola Docker sebagai pengguna non-root
Daemon docker mengikat ke soket Unix bukan port TCP. Secara default soket Unix dimiliki oleh root pengguna dan pengguna lain hanya dapat mengaksesnya menggunakan sudo. Daemon buruh pelabuhan selalu berjalan sebagai pengguna root.
Jika Anda tidak ingin menggunakan sudo saat menggunakan perintah buruh pelabuhan, buat grup Unix yang disebut buruh pelabuhan dan tambahkan pengguna ke dalamnya. Ketika daemon buruh pelabuhan mulai, itu membuat kepemilikan soket Unix dibaca / ditulis oleh kelompok buruh pelabuhan.
Untuk membuat grup buruh pelabuhan dan menambahkan pengguna Anda:
Perintah ini mengunduh gambar uji dan menjalankannya dalam wadah. Ketika wadah berjalan, ia mencetak pesan informasi dan keluar.
sumber
newgrp docker
sudo docker-compose up
". Ketika saya mencobanya, saya mendapatkan:sudo: docker-compose: command not found
Jika Anda mulai menggunakan buruh pelabuhan
sudo
, maka Anda harus menjalankan pembuatan komposisi buruh pelabuhan dengansudo
Suka:sudo docker-compose up
sumber
sudo docker-compose build
bukandocker-compose build
.Secara default daemon docker selalu berjalan sebagai pengguna root, oleh karena itu Anda perlu menambahkan
sudo
ke perintah Docker Anda.Jika Anda tidak ingin menggunakan sudo saat menggunakan perintah buruh pelabuhan, buat grup Unix yang disebut buruh pelabuhan dan tambahkan pengguna ke dalamnya. Ketika daemon buruh pelabuhan mulai, itu membuat kepemilikan soket Unix dibaca / ditulis oleh kelompok buruh pelabuhan.
Untuk membuat grup buruh pelabuhan dan menambahkan pengguna Anda:
Buat grup buruh pelabuhan.
$ sudo groupadd docker
Tambahkan pengguna Anda ke grup buruh pelabuhan.
$ sudo usermod -aG docker $USER
Logout dan log in kembali sehingga keanggotaan grup Anda dievaluasi kembali.
Verifikasi bahwa Anda dapat merapat perintah tanpa sudo.
$ docker run hello-world
Perintah ini mengunduh gambar uji dan menjalankannya dalam wadah. Ketika wadah berjalan, ia mencetak pesan informasi dan keluar.
Langkah-langkah yang diuraikan di atas berasal dari dokumentasi Docker resmi .
sumber
docker-compose
sebagai pemilik/usr/local/bin/docker-compose
dan kemudian memulai kembali layanangroup
keanggotaan dapat di-refresh dengansu - $USER
untuk menyimpan logging & onSaat Anda mendapatkan Kesalahan :
The Solution akan:
Pertama, coba verifikasi Layanan Docker sudah Aktif dan Berjalan seperti yang diharapkan pada mesin remote / lokal Anda:
sudo service docker status
jika Tidak - jalankan
sudo service docker start
atausudo systemctl start docker
(tergantung pada beberapa versi linux, lihat petunjuk memulai Docker ).Kedua, mulai buruh pelabuhan sebagai sudo
sudo docker-compose up
sumber
sudo systemctl start docker
- untuk memulai layanan Docker.sudo docker-compose up
setelah itu.Saya memiliki Fedora 26, dan mencoba untuk menyelesaikan masalah yang sama saya akhirnya memasuki Docker Compose di halaman Fedora Developers dan kemudian Docker di halaman Fedora Developers , yang membantu saya.
Mungkin, layanan buruh pelabuhan dianggap oleh masyarakat untuk memulai dengan sistem dan berjalan di latar belakang sepanjang waktu, tetapi bagi saya itu tidak begitu jelas, dan itulah alasan saya bisa memikirkan mengapa tidak ada jawaban populer seperti ini.
Pada halaman Pengembang Fedora ada instruksi bagaimana mengaktifkan Docker untuk memulai dengan sistem:
sudo systemctl enable docker
sumber
systemctl
denganlaunchctl
jika Anda menjalankan di mac.Jika Anda menggunakan Linux, Anda mungkin tidak
docker-machine
menginstalnya karena hanya diinstal secara default pada komputer Windows dan Mac.Jika demikian, Anda harus ke: https://docs.docker.com/machine/install-machine/ untuk menemukan petunjuk cara menginstalnya di versi Linux Anda.
Setelah menginstal, coba lagi jalankan
docker-compose up
sebelum mencoba apa pun yang tercantum di atas.Semoga ini bisa membantu seseorang. Ini berfungsi untuk instalasi devilbox saya di Fedora 25.
sumber
Selain menambahkan pengguna ke grup buruh pelabuhan, untuk menghindari mengetik
sudo
berulang-ulang, Anda juga dapat membuat alias untukdocker
perintah seperti:sumber
jika Anda menggunakan mesin buruh pelabuhan maka Anda harus mengaktifkan lingkungan menggunakan variabel env . jika Anda tidak menggunakan mesin docker kemudian jalankan perintah Anda dengan sudo
sumber
Adakah yang memeriksa log?
Dalam pesan kesalahan kasus saya
/var/log/upstart/docker.log
adalah:Layak untuk disebutkan saya telah dihidupkan, jadi:
$ sudo service openvpn stop $ sudo service docker restart $ docker-compose up|start $ sudo service openvpn start
adalah solusinya.sumber
Jawaban dari @srfrnk bekerja untuk saya.
Dalam situasi saya, saya memiliki file docker-compose.yml berikutnya:
./docker-runtime
pemilik dan grup - adalahroot
ketika pemilik file lain - pengguna saya. Ketika saya mencoba membangunnginx
Saya menambahkan
./docker-runtime
untuk.dockerignore
dan itu memecahkan masalah saya.sumber
saat menjalankan
docker-compose pull
- saya mendapatkan kesalahan di bawah iniapakah ini berjalan?
solusi -
masalah terselesaikan
sumber
Saya memiliki gejala yang sama.
Hanya berbeda bahwa itu terjadi hanya selama
docker-compose build
docker ps
bekerja. Terjadi dengan versi2.x
juga3.x
.docker
Layanan restart , maka mesin ... Bahkan diinstal ulangdocker
+docker-compose
.Mencoba segalanya tetapi tidak ada yang membantu.
Akhirnya saya mencoba membangun Dockerfile "secara manual" dengan menggunakan
docker build
.Tampaknya saya memiliki masalah izin pada file / folder di dalam
Docker
konteksnya. Itu mencoba membaca konteks ketika memulai membangun dan gagal dengan pesan kesalahan yang tepat. Namun pesan kesalahan ini tidak menyebar kedocker-compose
yang hanya ditampilkanCouldn't connect to Docker daemon at http+unix://var/run/docker.sock - is it running?
Setelah menemukan bahwa solusinya hanyalah menambahkan file / folder ke
.dockerignore
file karena itu tidak diperlukan untuk membangun. Solusi lain mungkin untukchown
atauchmod
itu.Bagaimanapun mungkin ini bisa membantu seseorang menemukan masalah yang sama yang tidak ada hubungannya dengan
docker
dan pesan kesalahan yang menyesatkan ditampilkan.sumber
chown
Sayachmod
memperbaikinya. Pesan kesalahan mengerikan tetapi mereka sedang mengusahakannya. Lihat github.com/docker/compose/issues/5318$ sudo docker-compose up
Saya memang mengikuti langkah-langkah seperti pada jawaban di atas untuk menambahkan $ USER ke grup buruh pelabuhan. Saya tidak ingin menambahkan buruh pelabuhan grup baru karena dalam instalasi buruh pelabuhan saya grup bernama buruh pelabuhan dibuat secara otomatis.
Docker CE diinstal dan dijalankan. Grup buruh pelabuhan dibuat tetapi tidak ada pengguna yang ditambahkan. Anda perlu menggunakan sudo untuk menjalankan perintah Docker. Lanjutkan ke Linux postinstall untuk memungkinkan pengguna yang tidak memiliki hak istimewa untuk menjalankan perintah Docker dan untuk langkah-langkah konfigurasi opsional lainnya.
tetapi menggunakan docker-compose up juga tidak berhasil. Itu memberi kesalahan sebelumnya yang sama. Jadi dalam kasus saya (Ubuntu 18.10) sudo docker-menulis memperbaiki masalah.
ps: @Tiw terima kasih atas sarannya.
sumber
Saya tahu ini konyol, tetapi dalam kasus saya, saya baru saja mencobanya
sudo
dan itu bekerja seperti pesona.dalam kasus Anda, coba saja:
$ sudo docker-compose up
sumber
coba ini:
sudo ln -s / usr / local / bin / docker-compose / usr / bin / docker-compose
sumber
Saya telah menyelesaikan masalah menggunakan langkah-langkah berikut
sekarang docker-compose up berfungsi
sumber
Bagi saya, saya mulai meningkatkan Docker dan dibatalkan di tengah jalan. Saya tidak melihat bahwa Docker tidak berjalan (jika itu, ada ikon di bar nav atas Macbook saya, dengan baterai yang tersisa, waktu, dll). Setelah saya meluncurkannya, dan menyelesaikan upgrade,
docker-compose up
bekerja lagi!sumber
Pengaturan saya punya dua kasus untuk kesalahan ini:
__pycache__
file yang dibuat oleh pengguna root setelah saya menjalankan tes integrasi di dalam wadah tidak dapat diakses untuk buruh pelabuhan (memberitahu Anda masalah asli) dan menulis buruh pelabuhan (memberi tahu Anda tentang host buruh pelabuhan secara ambigu);microk8s
memblokir port saya sampai saya menghentikannya.sumber
Coba jalankan
dockerd
atausudo dockerd
jika diperlukan terlebih dahulu untuk memulai daemon. Jika Anda mulaidockerd
dengansudo
Anda mungkin ingin menjalankandocker-compose up
dengansudo
juga. kalau tidak, tidak apa-apa.Solusi yang berfungsi dari https://github.com/docker/compose/issues/4181
sumber
keluar lalu masuk lagi membantu saya. Dalam kasus saya itu adalah instalasi baru, saya membuat pengguna baru, grup baru kemudian menambahkan pengguna ke grup buruh pelabuhan.
keluar dari pintu keluar
lalu ssh ke server lagi
sumber
Berikut ini bekerja untuk saya, saya tidak yakin bagian mana yang melakukan trik:
sumber