Mi contenedor docker puede compilarse con éxito, pero cuando ingreso el comando docker-compose build, se devuelve el siguiente error:
Starting docker_etl_1 ...
Starting 1e5f56853e10_1e5f56853e10_1e5f56853e10_docker_postgis_1 ...
Starting 1e5f56853e10_1e5f56853e10_1e5f56853e10_docker_postgis_1
Starting 1e5f56853e10_1e5f56853e10_1e5f56853e10_docker_postgis_1 ... error
ERROR: for 1e5f56853e10_1e5f56853e10_1e5f56853e10_docker_postgis_1 Cannot start service
postgis: driver failed programming external connectivity on endpoint
1e5f56853e10_1e5f56853e10_1e5f56853e10_docker_postgis_1
(91464afbee8bf7212061797ec0f4c017a56cc3c30c9bdaf513127a6e6a4a5a52): Error starting
userland prStarting docker_etl_1 ... done
ERROR: for postgis Cannot start service postgis: driver failed programming external connectivity
on endpoint 1e5f56853e10_1e5f56853e10_1e5f56853e10_docker_postgis_1
(91464afbee8bf7212061797ec0f4c017a56cc3c30c9bdaf513127a6e6a4a5a52): Error starting
userland proxy: Bind for 0.0.0.0:5432 failed: port is already allocated
Aquí está mi docker-compose.yaml
version: '2'
services:
postgis:
build: ./postgis
volumes:
- ../src/main/sql:/sql
ports:
- "5432:5432"
etl:
build: ./etl
volumes:
- ..:/national-voter-file
entrypoint:
- python3
- /national-voter-file/load/loader.py
y aquí está el Dockerfile:
FROM mdillon/postgis:9.5
ENV POSTGRES_DB VOTER
RUN mkdir /sql
COPY ./dockerResources/z-init-db.sh /docker-entrypoint-initdb.d/
EXPOSE 5432
No creo que tenga otro contenedor en ejecución, así que estoy confundido por el mensaje Bind for 0.0.0.0:5432 falló: el puerto ya está asignado
netstat | grep 5432
?
Hola @ shin-,
Acabo de hacer un restablecimiento completo en mi máquina y obtengo:
$ docker-compose up
_collections.so could not be extracted!
Después de eso, tengo el mismo problema que publicó @patrickconnors :
¿Algunas ideas?
@budnik Intente ejecutar docker-compose down
para limpiar contenedores y redes, luego up
nuevamente y vea si eso arregla las cosas.
Hoy me encontré con el mismo problema (con un contenedor postgres
) y, a pesar de haber probado docker-compose down
y luego up
nuevamente, el problema persiste.
Tanto docker-compose ps
como docker ps
me muestran una salida vacía.
Sin embargo, es posible que haya encontrado una solución:
así es como se define mi servicio postgres
version: '2.1'
services:
postgres:
image: postgres:9.5.4
env_file:
- docker-compose.env
ports:
- 5432:5432
y en mi caso, la solución fue simplemente deshabilitar el enlace del puerto, que está cambiando la última parte como:
ports:
- 5432
No estoy seguro de si esta es la solución correcta, ni si se puede aplicar en general a todos los casos de uso.
¿Podría ser un problema con docker-compose
sí mismo?
Para referencia:
$ docker-compose --version
docker-compose version 1.12.0, build b31ff33
La solución anterior era lo que necesitaba, muchas gracias @ lorenzo-pasa!
Estaba teniendo el mismo problema después de actualizar mi ventana acoplable-componer a la versión 3.3.
La solución @ lorenzo-pasa funciona localmente para mí (todavía necesito probar en prod)
A continuación se muestra _part_ de mi docker-compose
como referencia:
nginx:
image: nginx:1.12.2-alpine
volumes:
- .:/usr/share/nginx/app
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
ports:
- "80"
depends_on:
- web
Tenía esto y también cosas como Cannot start service mysql: network 4b8e7a23e3724fd351e428be30cdf7a9294d142ac23959ca9092278fc81e96c1 not found
. Los resolví usando --build --force-recreate
flags para el comando up.
¡¡Esto funciona para mí !!
docker-compose down
docker rm -fv $(docker ps -aq)
sudo lsof -i -P -n | grep 5432
kill -9 <process id>
sudo kill <process id>
ERROR: para iky_gateway No se puede iniciar el servicio iky_gateway: b'driver falló al programar la conectividad externa en el punto final iky_gateway (47d83edbbc1568eae6d26f5e75931797b7e23c6528ff7cc8140f50811fb44922): Error al iniciar el proxy de usuario: El enlace para 0.0.0.0: 8080 ya falló
Probé docker-compose down
, no lo arreglé.
Otra solución que puede ser útil para futuros lectores es: vuelva a verificar su archivo docker-compose.yml y asegúrese de que no tenga 2 elementos intentando ejecutarse en el puerto 8080.
Si tiene 2 elementos configurados para ejecutarse en el puerto 8080, puede obtener el mensaje de error "puerto ya asignado" para el servicio / contenedor que no está causando el problema, lo que le causará confusión cuando intente eliminar el servicio / contenedor y obtener no hay resolución para el mensaje de error.
La solución de @ Rub21 funcionó para mí, excepto que kill -9 {pid}
siguió reiniciando el proceso. Esto se debió a que tenía MySQL Server en ejecución. En OSX tuve que:
mysql
Stop MySQL Server
Eliminé el enlace de puertos y funcionó para mí, en lugar de hacer
mysql:puertos:- 3306: 3306
Tuve que cambiarme a
mysql:puertos:- 3306
y todo estuvo bien.
docker stop $ (docker ps -a -q)
docker rm $ (docker ps -a -q)
Luego elimine cualquier dato existente, por ejemplo, docker volume rm docker_db_data
docker-componer
El mismo problema aqui. Estoy usando docker versión 17.05.0-ce, build 8965be, con docker-compose 1.13.0 y 1.22.0. El archivo compose-yml es 3.2.
Con disculpas a @KazibweStephen , esta no es una solución útil. Le está diciendo a docker-compose que elija un puerto _abritrary_ para que los clientes se conecten al servicio mysql del contenedor. También podría decirle a mysql que no escuche ningún puerto o que simplemente elimine la configuración del puerto por completo.
He probado varias soluciones anteriores, incluido _reiniciar el servidor_. No se están ejecutando otros contenedores y no hay conflictos en el archivo yml. Recuerdo que esto funcionó en una versión mucho más antigua de docker / compose. netstat -anp
en el host no muestra nada escuchando en los puertos.
Si elimino por completo las secciones ports
, los procesos se inician correctamente. Luego uso nsenter ... netstat
para verificar que el contenedor esté escuchando en el puerto correcto (en su espacio de nombres). Luego verifico con netstat
para verificar que no haya ningún conflicto en el espacio de nombres predeterminado. Entonces puedo usar una utilidad como nc
para escuchar en el mismo puerto.
No veo ninguna razón con respecto a la documentación por la que la configuración no funciona. La conclusión es que hay algo mal con la configuración del proxy de docker-compose.
_Increíble_. De hecho, tuve un pequeño error que causó el problema. Mi configuración necesitaba _dos_ puertos, y uno de estos tenía un error tipográfico, replicando al otro. facepalm
netstat | grep 5432
?
Hola, cuando ejecuto esto, recibí este mensaje ...
98808d86b49cff5d flujo 0 0 98808d86b6dd9be5 0 0 0 /tmp/.s.PGSQL.5432. ¿Podrías ayudarme con lo que debo hacer? Gracias
y en mi caso, la solución fue simplemente deshabilitar el enlace del puerto, que está cambiando la última parte como:
ports: - 5432
No estoy seguro de si esta es la solución correcta, ni si se puede aplicar en general a todos los casos de uso.
¿Podría ser un problema con
docker-compose
sí mismo?
Para referencia:$ docker-compose --version docker-compose version 1.12.0, build b31ff33
Esta solución funcionó para mí.
docker-compose -version
docker-compose version 1.23.1, build b02f1306
Tuve una situación ligeramente diferente, publicando aquí para registrar otro caso de esto sucediendo.
Cuando se usa un archivo docker-compose.yml
y docker-compose.override.yml
, que contienen un mapeo de puertos, donde el puerto del host es el mismo para ambos mapeos, pero el puerto del contenedor es diferente, esto hace que Docker intente asignar el puerto de host dos veces.
docker-compose.yml:
ports:
- 8080:8080
docker-compose.override.yml:
ports:
- 8080:8181
Quizás esto sea un problema en sí mismo, la creación de asignaciones anuladas da como resultado intentos de vinculación duplicados. Esta situación es específicamente narrativa porque nada está escuchando en el puerto hasta que intenta poner los contenedores en línea. Lo que falla y, por lo tanto, apaga toda la composición, lo que da como resultado que el puerto se desasigne nuevamente.
¡La solución de @ lorenzo-pasa funcionó para mí! Estoy usando docker-compose y nginx, ejecutando ubuntu OS, gracias amigo.
Tengo curiosidad: ¿por qué está cerrado este problema, mientras que muchas personas todavía parecen tener un problema (incluyéndome a mí)? ¿La solución oficial es no escribir nunca (por ejemplo) 8080:8080
y escribir siempre en su lugar simplemente 8080
? Para que quede claro, esto no es una queja, tengo una sincera curiosidad.
@Ezwen de acuerdo
Probé todas las sugerencias publicadas anteriormente, pero sigo ejecutando errores.
Estoy ejecutando PHPstorm e intento Xdebug de mi aplicación en un dockerbox. Al iniciar my dockerbox, estoy usando docker-compose up con un
puertos:
- "9001: 9001"
que expone el puerto correctamente. (vpnkit.exe es parte de Docker)
Veo que vpnkit.exe está escuchando el puerto 9001. Entonces, cuando intento iniciar mi Xdebug en PHPstorm, aparece el mensaje de error
No sé por qué no puedo decirle al depurador PHPstorm que escuche el puerto 9001 mientras que vpnkit.exe siempre lo usa cuando inicio mi contenedor Docker.
¡Gracias @ lorenzo-pasa! Ese era exactamente mi problema y sus soluciones funcionaron. Intenté muchas cosas para resolver esto sin resultado. ¡Gracias de nuevo!
Hoy me encontré con el mismo problema (con un contenedor
postgres
) y, a pesar de haber probadodocker-compose down
y luegoup
nuevamente, el problema persiste.Tanto
docker-compose ps
comodocker ps
me muestran una salida vacía.Sin embargo, es posible que haya encontrado una solución:
así es como se define mi servicio
postgres
version: '2.1' services: postgres: image: postgres:9.5.4 env_file: - docker-compose.env ports: - 5432:5432
y en mi caso, la solución fue simplemente deshabilitar el enlace del puerto, que está cambiando la última parte como:
ports: - 5432
No estoy seguro de si esta es la solución correcta, ni si se puede aplicar en general a todos los casos de uso.
¿Podría ser un problema con
docker-compose
sí mismo?
Para referencia:$ docker-compose --version docker-compose version 1.12.0, build b31ff33
Para mí, el problema era que otro contenedor de la ventana acoplable todavía se estaba ejecutando en segundo plano desde un proyecto diferente.
Lo arreglé ejecutando:
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
Tengo el mismo problema que mencionó @maritaria .
@freesoft Probablemente sea mejor abrir una nueva edición para esto.
Intenté todo aquí, pero nada parece funcionar, luego hice esto:
sudo lsof -i -P -n | grep 5432
matar todos los procesos
sudo matar
entonces funcionó para mí.
Tuve el mismo problema con
Version: 18.09.3
API version: 1.39
Go version: go1.10.8
Git commit: 774a1f4
Built: Thu Feb 28 06:53:11 2019
OS/Arch: linux/amd64
Experimental: false
Uno de los procesos docker-proxy
estaba bloqueado, por lo que eliminarlo y systemctl restart docker
resolvió el problema.
Ejecuté docker system prune (tenga cuidado con este comando) y luego reinicié la ventana acoplable, funcionó para mí.
docker network prune
parece resolver el problema por mí
sudo lsof -i -P -n | grep 5432
funcionó para mí instancia de linux ec2
sudo lsof -i -P -n | grep
funciona para mí, pero ¿tengo que seguir matando los procesos de vez en cuando?
En mi caso, ya tenía una instancia en ejecución de node.js en local con el mismo puerto.
¡Cuando lo detuve, docker-compose up --build
comenzó a funcionar!
en mi caso, reinicio SO
@ Rub21 's
sudo lsof -i -P -n | grep <port number>
Denigró el programa de uso para ser docker-pr
.
Después de actualizar mis palabras clave de búsqueda en consecuencia, me encontré con esto .
Eso resolvió mi problema de no poder implementar servicios utilizando puertos que se supone que no están asignados, pero que de todos modos lo están.
Gracias.
POR CIERTO:
En mi caso, creo que la fuente de mi error fue que hice un cierre completo mientras ejecutaba docker network prune
.
Supongo que el cli no pudo terminar la tarea, por lo tanto, tenía todas esas sobras "no existentes" en mi ruta de acceso / red.
En mi caso, esto funcionó https://github.com/docker/for-mac/issues/205#issuecomment -250856158
On linux users have reported that after remove local-kv.db with all containers stoped the problem gets solved.
El archivo está en /var/lib/docker/network/files/local-kv.db
kill -9 $(sudo lsof -i -P -n | grep 8888 | awk '{print $2}')
sirvió
desafortunadamente, el truco con "kill -9 .." no funciona.
consiguió zombies en lugar del proceso de proxy de la ventana acoplable:
docker run -it -p 50000: 50000 hola-mundo
docker: Respuesta de error del demonio: el controlador falló al programar la conectividad externa en el punto final musing_dijkstra (2afd0e53bb80223bc07650e59bd16b43c6d971828a589db6f43dfa50a7a1ab42): El enlace para 0.0.0.0:50000 falló: el puerto ya está asignado.
Docker ejecutar -it -p 80:80 hola-mundo
docker: Respuesta de error del demonio: el controlador falló al programar la conectividad externa en el punto final cocky_goldberg (8dab653c7575c298efea1b808ef2ff16f19bb6c23f51612787e19a434ceeb2ff): El enlace para 0.0.0.0:80 falló: el puerto ya está asignado.
arriba | zombi grep
Tareas: 319 en total, 1 en ejecución, 181 durmiendo, 0 detenidas, 2 zombies
uname -r
4.14.35-1844.4.5.el7uek.x86_64
@ lorenzo-pasa Me encontré con el mismo problema para el servicio de cónsul y tu truco funcionó para mí. Gracias por la solucion
docker stop $ (docker ps -a -q)
docker rm $ (docker ps -a -q)
Luego elimine cualquier dato existente, por ejemplo, docker volume rm docker_db_data
docker-componer
Esta solución de @ joseph-luketelo (¡gracias!) Funcionó en MacOS Mojave. Ni siquiera necesitaba "eliminar los datos existentes ...". Simplemente ejecutando los dos primeros comandos lo resolvió.
/var/lib/docker/network/files/local-kv.db
(con todo apagado y hacia abajo) no funcionódocker-proxy
instancias que ocupaban los puertos no funcionó (ya no se muestra nada en la salida de netstat para ese puerto, pero sigue apareciendo este mensaje de error).docker-compose up
simplemente se cuelga indefinidamente.Esto me ha estado sucediendo casi semanalmente durante un mes más o menos ahora y hasta ahora, lo único que funciona es volver a instalar Docker cada vez. ¿Por qué está esto cerrado? Incluso si se llevaron a cabo los pasos anteriores, esto es claramente un error de alguna variedad ...
todas las soluciones mencionadas no funcionaron para mí.
Esto se trabaja:
sudo rm -rf /var/lib/docker
sudo service docker restart # to re-create the db again
También intenté reinstalar docker y docker-compose, pero no tengo ni idea de si este paso ayuda. No funcionó hasta que hice los pasos mencionados anteriormente.
Hoy me encontré con el mismo problema (con un contenedor
postgres
) y, a pesar de haber probadodocker-compose down
y luegoup
nuevamente, el problema persiste.Tanto
docker-compose ps
comodocker ps
me muestran una salida vacía.Sin embargo, es posible que haya encontrado una solución:
así es como se define mi servicio
postgres
version: '2.1' services: postgres: image: postgres:9.5.4 env_file: - docker-compose.env ports: - 5432:5432
y en mi caso, la solución fue simplemente deshabilitar el enlace del puerto, que está cambiando la última parte como:
ports: - 5432 (this also solve my problem)
No estoy seguro de si esta es la solución correcta, ni si se puede aplicar en general a todos los casos de uso.
¿Podría ser un problema con
docker-compose
sí mismo?
Para referencia:$ docker-compose --version docker-compose version 1.12.0, build b31ff33
deshabilitar el enlace de puertos también resolvió mi problema
Recibí el mismo error después de reconstruir mi configuración de Docker.
ハ➜ docker-compose up
Lo intenté:
ハ➜ docker-compose down
pero aún enfrentaba el mismo problema ...
ef18b3f0f2864b22e102): Bind for 0.0.0.0:10002 failed: port is already allocated
ERROR: for db Cannot start service db: driver failed programming external connectivity on endpoint eeschenck_db_1 (a7caadb27e327b901df83bb42fd19bd704224aa03a75ef18b3f0f2864b22e102): Bind for 0.0.0.0:10002 failed: port is already allocated
ERROR: Encountered errors while bringing up the project.
Luego intenté reiniciar la aplicación Docker y salí de mi IDE de 'Visual Studio Code' que tiene una extensión de Docker ...
Luego intenté una vez más y traté de netstat el puerto.
ハ➜ netstat -n | grep 10002
No se encontró nada para ese puerto ... Debería haber intentado esto antes.
ハ➜ docker-compose up
Parece que la extensión de Visual Studio Code Docker podría ser el problema para mí.
¿Puedes compartir tu configuración de archivo docker-compose?
Necesitas eliminar la duplicación de puertos
Trabajó para mi
docker-compose down
docker network prune
sudo service docker restart
docker-compose up
Hoy me encontré con el mismo problema (con un contenedor
postgres
) y, a pesar de haber probadodocker-compose down
y luegoup
nuevamente, el problema persiste.Tanto
docker-compose ps
comodocker ps
me muestran una salida vacía.Sin embargo, es posible que haya encontrado una solución:
así es como se define mi servicio
postgres
version: '2.1' services: postgres: image: postgres:9.5.4 env_file: - docker-compose.env ports: - 5432:5432
y en mi caso, la solución fue simplemente deshabilitar el enlace del puerto, que está cambiando la última parte como:
ports: - 5432
No estoy seguro de si esta es la solución correcta, ni si se puede aplicar en general a todos los casos de uso.
¿Podría ser un problema con
docker-compose
sí mismo?
Para referencia:$ docker-compose --version docker-compose version 1.12.0, build b31ff33
@ lorenzo-pasa Gracias, esta solución funcionó para mí.
El simple hecho de reiniciar el demonio de escritorio de Docker en Mac funcionó para mí (Docker Desktop 2.2.0.4).
Parece que algo se portó mal al inicio.
docker stop $ (docker ps -a -q)
Ejecute este comando antes de intentar otro fijo como -8080: 8080 a -8080 o incluso docker rm $ (...)
He reiniciado mi máquina y ha comenzado a funcionar de nuevo. Probablemente no sea una solución precisa, pero funcionó
Si docker ps no produce nada y docker-compose down / up no ayudó, verifique si el puerto se usa con este comando:
sudo lsof -i -P -n | grep 9200
Si es así, simplemente ejecute:
sudo service docker restart
tiene el mismo problema. Hago :
docker-compose down
docker-compose build
docker-compose up -d
pero a veces ocurre un error
ERROR: for xxxxxx Cannot start service web: driver failed programming external connectivity on endpoint xxxxx (xxxx): Bind for 0.0.0.0:22000 failed: port is already allocated
No puedo reiniciar Docker porque otros contenedores se ejecutan allí
@mogadanez como lo propone @KorossGame , puede intentar encontrar qué proceso ya está usando este puerto.
Que tenga un buen día,
@pandaatrail
su ventana acoplable, pero no ayuda, no puedo reiniciar toda la ventana acoplable.
@mogadanez Si no puede reiniciar la
sudo lsof -i -P -n | grep 9200
También verifique si los contenedores Docker no están usando los mismos puertos de entrada con:
docker ps
Simplemente no funciona. lsof
no muestra ningún puerto en uso. Eliminar imágenes y recrear toda la pila no funciona. Reiniciar Docker no funciona. Lo único que funcionó fue reiniciar el sistema. Buena suerte.
Hola,
solo necesita verificar si hay otro servicio que use el mismo puerto,
docker-compose down
netstat -ano | findstr :port
(como ejemplo netstat -ano | findstr :18080
)taskkill /pid the_pid_of_the_port /f
docker-compose up
Y eso es todo 😄
@olfamoussaoui Intenté todo eso, pero para mac. Ninguna solución funciona.
@gabrielhpugliese, ¿ ha intentado ver si el puerto está en uso?
@olfamoussaoui Intenté todo eso, pero para mac. Ninguna solución funciona.
Tuve un comportamiento de redacción similar en Ubuntu. Fue un efecto secundario, basado en una configuración incorrecta de iptables. La traducción del puerto debe comprobarse y publicarse manualmente. No recuerdo la sintaxis de Corect para MacOS. No debería ser tan difícil encontrarlo junto a la piedra de roseta.
No entiendo por qué necesito todo eso y el problema está lejos. Eso
no es una configuración nueva que estoy construyendo y no creé una nueva
contenedores / servicios. Acabo de volver a crear el contenedor de mi servidor con up -d
--construir. Muy raro.
vitaly-zverev [email protected] schrieb am Mi., 19 de agosto de 2020,
17:27:
@olfamoussaoui https://github.com/olfamoussaoui Intenté todo eso pero
para Mac. Ninguna solución funciona.Tuve un comportamiento de redacción similar en Ubuntu. Fue un efecto secundario, basado en
configuración incorrecta de iptables. La traducción del puerto debe ser verificada y liberada
a mano. No recuerdo la sintaxis de Corect para MacOS. No debería ser tan difícil
para encontrarlo por roseta de piedra.-
Recibes esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/docker/compose/issues/4950#issuecomment-676495723 ,
o darse de baja
https://github.com/notifications/unsubscribe-auth/AAJR3UTBMGLV2ECW5GCNQDTSBPVNXANCNFSM4DQLFGPQ
.
No entiendo por qué necesito todo eso y el problema está lejos. No es una configuración nueva que estoy construyendo y no creé nuevos contenedores / servicios. Acabo de volver a crear el contenedor de mi servidor con up -d --build. Muy raro. vitaly-zverev [email protected] schrieb am Mi., 19 de agosto de 2020, 17:27:
...
@olfamoussaoui https://github.com/olfamoussaoui Intenté todo eso, pero para mac. Ninguna solución funciona. Tuve un comportamiento de redacción similar en Ubuntu. Fue un efecto secundario, basado en una configuración incorrecta de iptables. La traducción del puerto debe comprobarse y publicarse manualmente. No recuerdo la sintaxis de Corect para MacOS. No debería ser tan difícil encontrarlo junto a la piedra de roseta. - Estás recibiendo esto porque te mencionaron. Responda a este correo electrónico directamente, véalo en GitHub < # 4950 (comentario) > o cancele la suscripción https://github.com/notifications/unsubscribe-auth/AAJR3UTBMGLV2ECW5GCNQDTSBPVNXANCNFSM4DQLFGPQ .
Ummm, Ok, según tengo entendido, su causa raíz debe analizarse en el lugar donde la ventana acoplable se integró con la traducción de red. Depende del sistema operativo y tiene muchas implicaciones,
como cualquier error de integración.
Han sido muchas buenas respuestas. Descubrí que el problema era otra aplicación que había instalado (Sky Go) en Catalina que de alguna manera estaba causando un conflicto de puertos a pesar de que estaba cerrada.
Vale la pena comprobar que estas aplicaciones (incluido Skype) no están causando el problema.
También enfrenté el mismo problema. Estoy usando el puerto 8080 y cada vez que intenté ejecutar la ventana acoplable, mostraba que el puerto 8080 ya estaba en uso. Luego verifiqué si alguna otra aplicación bloqueó el puerto pero no encontré nada.
Luego siguió los siguientes pasos.
Si está en WSL2, verifique si Hyper-V está habilitado o no. Si no es así, habilítelo, eso será suficiente.
El reinicio del sistema operativo me ayudó
Comentario más útil
¡¡Esto funciona para mí !!