Saya mencoba menggunakan $ docker-compose up -d
untuk sebuah proyek dan mendapatkan pesan kesalahan ini:
KESALAHAN: untuk api Tidak dapat memulai api layanan: driver gagal memprogram konektivitas eksternal pada titik akhir dataexploration_api_1 (8781c95937a0a4b0b8da233376f71d2fc135f46aad011401c019eb3d14a0b117): Kesalahan saat memulai proxy userland: mkdir /port/tcp2.09.0: Terjadi kesalahan saat membuka proyek.
Saya bertanya-tanya apakah itu mungkin portnya? Saya telah mencoba port 8080 sebelumnya. Proyek ini awalnya disiapkan di mac dan saya telah mengkloning repositori dari gitHub.
windows
github
windows-10
docker-compose
Sockness_Rogers
sumber
sumber
Jawaban:
Saya mendapat pesan kesalahan yang sama di Windows 10 Pro / Docker v17.06.1-ce-win24 / Docker-Compose v1.14.0 saya menggunakan Windows Powershell x86 dalam mode admin.
Solusinya adalah dengan memulai ulang Docker.
sumber
docker run -p 8080:8080 --name myJenkins -p 50000:50000 jenkins/jenkins:2.107.2
. Setelah selesai mengatur jenkins, saya menggunakandocker stop myJenkins
di jendela perintah lain dan mematikan host saya Windows 10. Ketika saya memulai windows 10 yang memulai buruh pelabuhan secara otomatis, saya menggunakan perintahdocker start myJenkins
dan mendapatkan pesan yang akrab. Namun, memulai kembali buruh pelabuhan akan memecahkan masalah :)Jika terjadi sekali, memulai ulang Docker akan melakukan pekerjaannya. Dalam kasus saya, itu terjadi setiap kali saya me-restart komputer saya.
Dalam kasus ini, nonaktifkan Fast Startup , atau Anda mungkin akan memulai ulang Docker setiap kali komputer Anda mulai. Solusi ini diperoleh dari sini
sumber
Cukup dengan merestart Docker tidak memperbaiki masalah saya di Windows 10.
Dalam kasus saya, saya menyelesaikan masalah dengan langkah-langkah yang tepat di bawah ini:
1) Tutup "Desktop Docker"
2) Jalankan perintah di bawah ini:
3) Luncurkan "Docker Desktop" lagi
Semoga ini bisa membantu orang lain.
sumber
Saya mendapat kesalahan itu juga, jika Anda ingin tahu alasan utama mengapa kesalahan terjadi, itu karena buruh pelabuhan sudah menjalankan wadah yang sama, untuk menyelesaikan masalah (hindari memulai ulang Docker), Anda harus:
Anda mendapatkan sesuatu yang mirip dengan:
Ini adalah daftar container yang sedang berjalan, ambil ID CONTAINER (copy Ctrl+ C)
Sekarang Anda harus mengakhiri proses (dan menjalankan gambar lain) menjalankan perintah ini.
Dan itu saja! Sekarang Anda dapat membuat wadah.
Untuk informasi lebih lanjut, kunjungi https://docs.docker.com/get-started/part2/
sumber
Saya sadar sudah ada banyak jawaban, tetapi tidak ada yang memecahkan masalah untuk saya.
Sebagai gantinya, saya menghilangkan pesan kesalahan ini dengan mengatur ulang buruh pelabuhan ke default pabrik :
sumber
Biasanya kesalahan ini terjadi ketika Anda mencoba memulai sebuah kontainer tetapi port yang dibutuhkan kontainer sudah ditempati, biasanya oleh Docker yang sama seperti akibat dari proses buruk terbaru untuk dihentikan.
Bagi saya solusinya adalah:
netstat -oan
untuk menemukan proses (Docker adalah proses itu) yang menempati port Anda:Dalam kasus saya, port buruh pelabuhan saya adalah 3306 6001 8000 9001.
Sekarang kita perlu membebaskan port itu, jadi kita pergi untuk menghentikan proses ini dengan PID (kolom PID), ketik
Mulai ulang buruh pelabuhan.
Salam.
sumber
Dalam kasus saya, masalahnya adalah bahwa kontainer buruh pelabuhan (Nginx) menggunakan port 80, dan IIS menggunakan hal yang sama. Menyiapkan port lain di IIS memecahkan masalah
sumber
Dalam kebanyakan kasus, kasus pertama yang harus Anda pikirkan adalah ada layanan lama yang berjalan dan menggunakan port itu. Dalam kasus saya, karena saya mengubah nama gambar, maka ketika menggunakan docker-compose untuk berhenti (lalu naik), itu tidak akan menghentikan kontainer lama (layanan), menyebabkan kontainer baru tidak dapat dimulai.
sumber
Sedikit jawaban terlambat tetapi saya akan meninggalkannya di sini mungkin membantu orang lain Di Mac mojave setelah banyak restart dari kedua mac dan buruh pelabuhan yang harus saya lakukan
sudo apachectl stop
.sumber
Cara termudah untuk mengatasinya adalah Memulai kembali buruh pelabuhan. Tetapi dalam beberapa kasus ini mungkin tidak berfungsi meskipun Anda tidak memiliki kontainer yang berjalan di port. Anda dapat memeriksa kontainer yang berjalan menggunakan
docker ps
perintah dan dapat melihat semua kontainer yang tidak dihapus tetapi keluar sebelum menggunakandocker ps -a
perintah.Bayangkan ada container yang memiliki container id
8e35276e845e
. Anda bisa menggunakan perintahdocker rm 8e35276e845e
ataudocker rm 8e3
mengakhiri container. Perhatikan bahwa 3 string pertama adalah id dari ID kontainer buruh pelabuhan tertentu. Jadi menurut skenario di atas, 8e3 adalah id dari 8e35276e845e .Jika memulai ulang tidak berhasil, Anda dapat mencoba mengubah port layanan di file docker-compose.yml dan sesuai dengan port apache Anda harus mengubah port v-host (jika ada). Ini akan menyelesaikan masalah Anda. masalah.
Ex:
harus diubah menjadi
dan v-host tertentu juga harus diubah,
Ex (menurut skenario di atas):
Ini akan membantu Anda memecahkan masalah di atas.
sumber
Untuk banyak pengguna windows di luar sana yang memiliki masalah yang sama, saya sarankan untuk me-restart komputer juga, karena sebagian besar waktu (setidaknya bagi saya) memulai ulang hanya Docker tidak berfungsi. Jadi, saya sarankan Anda mengikuti langkah-langkah berikut:
Kemudian Mulai PowerShell Anda sebagai admin dan jalankan ini:
Set-NetConnectionProfile -interfacealias "vEthernet (DockerNAT)" -NetworkCategory Private
Setelah itu restart Docker Anda.
Setelah menyelesaikan langkah-langkah ini, Anda akan dapat menjalankannya tanpa masalah. Saya harap itu membantu.
sumber