Meu contêiner do docker consegue construir com sucesso, mas quando eu insiro o comando docker-compose build, o seguinte erro é retornado:
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
Aqui está meu 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
e aqui está o 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
Não acredito que tenha outro contêiner em execução, por isso estou confuso com a mensagem Falha ao ligar para 0.0.0.0:5432: a porta já está alocada
netstat | grep 5432
?
Olá @ shin-,
Acabei de fazer uma reinicialização total na minha máquina e recebo:
$ docker-compose up
_collections.so could not be extracted!
Depois disso, tenho o mesmo problema postado por @patrickconnors :
Alguma ideia?
@budnik Tente executar docker-compose down
para limpar contêineres e redes, depois up
novamente e veja se isso corrige as coisas.
Tive o mesmo problema hoje (com um contêiner postgres
) e, apesar de ter tentado docker-compose down
e up
novamente, o problema ainda persiste.
Tanto docker-compose ps
quanto docker ps
me mostram uma saída vazia.
Eu posso ter encontrado uma solução, no entanto:
é assim que meu serviço postgres
é definido
version: '2.1'
services:
postgres:
image: postgres:9.5.4
env_file:
- docker-compose.env
ports:
- 5432:5432
e, no meu caso, a correção foi simplesmente desabilitar a vinculação da porta, ou seja, alterar a última parte como:
ports:
- 5432
Não tenho certeza se essa é a solução certa, nem se ela pode ser aplicada a todos os casos de uso.
Pode ser um problema com docker-compose
si?
Para referência:
$ docker-compose --version
docker-compose version 1.12.0, build b31ff33
A solução acima era o que eu precisava, muito obrigado @lorenzo-pasa!
Eu estava tendo o mesmo problema depois de atualizar meu docker-compose para a versão 3.3.
A solução @ lorenzo-pasa funciona localmente para mim (ainda preciso tentar no prod)
Abaixo está a _parte_ da minha docker-compose
para referência:
nginx:
image: nginx:1.12.2-alpine
volumes:
- .:/usr/share/nginx/app
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
ports:
- "80"
depends_on:
- web
Eu tinha isso e também coisas como Cannot start service mysql: network 4b8e7a23e3724fd351e428be30cdf7a9294d142ac23959ca9092278fc81e96c1 not found
. Eu os resolvi usando sinalizadores --build --force-recreate
para o comando up.
Isso 👇 funciona para mim !!
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: for iky_gateway Não é possível iniciar o serviço iky_gateway: b'driver falhou ao programar conectividade externa no endpoint iky_gateway (47d83edbbc1568eae6d26f5e75931797b7e23c6528ff7cc8140f50811fb44922): Erro ao iniciar o proxy da porta do usuário: Falha ao ligar para 0.0.0.0:80 ': já está alocado para 0.0.0.0:8080'
Eu tentei docker-compose down
, não consertei.
Outra solução que pode ser útil para leitores futuros é: verifique novamente seu arquivo docker-compose.yml e certifique-se de que não haja 2 itens tentando executar na porta 8080.
Se você tiver 2 itens configurados para rodar na porta 8080, você pode obter a mensagem de erro "porta já alocada" para o serviço / contêiner que não está causando o problema - o que causará confusão quando você tentar encerrar o serviço / contêiner e obter nenhuma resolução para a mensagem de erro.
A solução de @Rub21 funcionou para mim, exceto kill -9 {pid}
continuou reiniciando o processo. Isso porque eu tinha o MySQL Server em execução. No OSX eu tive que:
mysql
Stop MySQL Server
Eu removi a vinculação da porta e funcionou para mim, em vez de fazer
mysql:portas:- 3306: 3306
eu tive que mudar para
mysql:portas:- 3306
e tudo estava bem.
docker stop $ (docker ps -a -q)
docker rm $ (docker ps -a -q)
Em seguida, remova todos os dados existentes, por exemplo, docker volume rm docker_db_data
docker-compose up
Mesmo problema aqui. Estou usando o docker versão 17.05.0-ce, build 8965be, com docker-compose 1.13.0 e 1.22.0. O arquivo compose-yml é 3.2.
Com desculpas a @KazibweStephen , esta não é uma solução útil. Você está dizendo ao docker-compose para escolher uma porta _abritrary_ para os clientes se conectarem ao serviço mysql do contêiner. Você também pode dizer ao mysql para não ouvir nenhuma porta ou apenas remover a configuração da porta por completo.
Tentei várias soluções acima, incluindo _reinicializar o servidor_. Nenhum outro contêiner está em execução e não há conflitos no arquivo yml. Lembro que isso funcionava em uma versão muito mais antiga do docker / compose. netstat -anp
no host não mostra nada ouvindo nas portas.
Se eu recompor completamente as seções ports
, os processos iniciam OK. Em seguida, uso nsenter ... netstat
para verificar se o contêiner está escutando na porta correta (em seu namespace). Em seguida, verifico com netstat
para verificar se não há conflito no namespace padrão. Posso então usar um utilitário como nc
para escutar na mesma porta.
Não consigo ver nenhum motivo vis-à-vis a documentação para que a configuração não funcione. A conclusão é que há algo errado com a configuração de proxy do docker-compose.
_Inacreditável_. Eu tive, na verdade, um pequeno erro que causou o problema. Minha configuração precisava de _duas_ portas, e uma delas tinha um erro de digitação, replicando a outra. facepalm
netstat | grep 5432
?
Oi, quando eu executo isto, recebo esta mensagem ..
98808d86b49cff5d stream 0 0 98808d86b6dd9be5 0 0 0 /tmp/.s.PGSQL.5432. Você pode me ajudar no que fazer? Obrigado
e, no meu caso, a correção foi simplesmente desabilitar a vinculação da porta, ou seja, alterar a última parte como:
ports: - 5432
Não tenho certeza se essa é a solução certa, nem se ela pode ser aplicada a todos os casos de uso.
Pode ser um problema com o próprio
docker-compose
?
Para referência:$ docker-compose --version docker-compose version 1.12.0, build b31ff33
Essa correção funcionou para mim.
docker-compose -version
docker-compose version 1.23.1, build b02f1306
Tive uma situação um pouco diferente, postando aqui para registrar mais um caso desse acontecimento.
Ao usar um arquivo docker-compose.yml
e docker-compose.override.yml
, ambos contêm um mapeamento de porta, onde a porta do host é a mesma para ambos os mapeamentos, mas a porta do contêiner é diferente, então isso faz com que o docker tente alocar a porta do host duas vezes.
docker-compose.yml:
ports:
- 8080:8080
docker-compose.override.yml:
ports:
- 8080:8181
Talvez este seja um problema por si só, a criação de mapeamentos de substituição resulta em tentativas de vinculação duplicadas. Essa situação ocorre especificamente porque nada está escutando na porta até que você tente colocar os contêineres online. O que falha e, portanto, desliga toda a composição, o que resulta na desalocação da porta novamente.
A solução do @lorenzo-pasa funcionou para mim! Estou usando docker-compose e nginx, rodando o Ubuntu OS, obrigado cara.
Estou curioso: por que este problema foi encerrado, enquanto várias pessoas ainda parecem encontrar um problema (inclusive eu)? A correção oficial é nunca escrever (por exemplo) 8080:8080
e sempre escrever simplesmente 8080
? Só para ficar claro, esta não é uma reclamação, estou sinceramente curioso.
@Ezwen concorda
Tentei todas as sugestões postadas acima, mas ainda com erros.
Estou executando o PHPstorm e tento Xdebug meu aplicativo em um dockerbox. Ao iniciar meu dockerbox, estou usando docker-compose up com um
portas:
- "9001: 9001"
que expõe a porta corretamente. (vpnkit.exe faz parte do Docker)
Vejo que o vpnkit.exe está escutando a porta 9001. Então, quando tento iniciar meu Xdebug no PHPstorm, aparece a mensagem de erro
Não sei por que não posso dizer ao depurador do PHPstorm para escutar a porta 9001 enquanto ela é sempre usada pelo vpnkit.exe quando eu inicio meu contêiner do docker.
Obrigado, @lorenzo-pasa! Esse era exatamente o meu problema e suas soluções funcionaram. Tentei muitas coisas para resolver isso sem resultado. Obrigado, de novo!
Tive o mesmo problema hoje (com um contêiner
postgres
) e, apesar de ter tentadodocker-compose down
eup
novamente, o problema ainda persiste.Tanto
docker-compose ps
quantodocker ps
me mostram uma saída vazia.Eu posso ter encontrado uma solução, no entanto:
é assim que meu serviço
postgres
é definidoversion: '2.1' services: postgres: image: postgres:9.5.4 env_file: - docker-compose.env ports: - 5432:5432
e, no meu caso, a correção foi simplesmente desabilitar a vinculação da porta, ou seja, alterar a última parte como:
ports: - 5432
Não tenho certeza se essa é a solução certa, nem se ela pode ser aplicada a todos os casos de uso.
Pode ser um problema com
docker-compose
si?
Para referência:$ docker-compose --version docker-compose version 1.12.0, build b31ff33
Para mim, o problema era que outro contêiner do docker ainda estava em execução em segundo plano de um projeto diferente.
Consertei executando:
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
Eu tenho o mesmo problema que @maritaria mencionou.
@freesoft Provavelmente, é melhor abrir uma nova edição para isso.
Tentei de tudo aqui, mas nada parece funcionar, então fiz isso:
sudo lsof -i -P -n | grep 5432
matar todos os processos
sudo matar
então funcionou para mim.
Tive o mesmo problema com
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
Um dos docker-proxy
processos estava travando, portanto, matá-lo e systemctl restart docker
resolveu o problema.
Eu executei docker system prune (tenha cuidado com este comando) e reiniciei o docker, funcionou para mim.
docker network prune
parece resolver o problema para mim
sudo lsof -i -P -n | grep 5432
funcionou para mim instância linux ec2
sudo lsof -i -P -n | grep
funciona para mim, mas eu tenho que continuar eliminando os processos de vez em quando?
No meu caso, eu já tinha uma instância do node.js em execução no local com a mesma porta.
Quando parei, docker-compose up --build
começou a funcionar!
no meu caso, eu reinicio SO
@ Rub21 's
sudo lsof -i -P -n | grep <port number>
Revelou o uso do programa como docker-pr
.
Depois de atualizar minhas palavras-chave de pesquisa de acordo, me deparei com isso .
Isso resolveu meu problema de não conseguir implantar serviços usando portas que não deveriam estar alocadas, mas estão mesmo assim.
Obrigado.
POR FALAR NISSO:
No meu caso, eu acredito que a fonte do meu erro foi um encerramento forçado enquanto executava docker network prune
.
Eu acho que o CLI não foi capaz de terminar a tarefa, portanto, eu tinha todas aquelas sobras "não existentes" no meu caminho de docker / rede.
No meu caso, funcionou 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.
O arquivo está em /var/lib/docker/network/files/local-kv.db
kill -9 $(sudo lsof -i -P -n | grep 8888 | awk '{print $2}')
fez o truque para mim
infelizmente, o truque com "kill -9 .." não funciona.
tem zumbis no lugar do processo docker-proxy:
docker run -it -p 50000: 50000 hello-world
docker: Resposta de erro do daemon: o driver falhou ao programar a conectividade externa no endpoint musing_dijkstra (2afd0e53bb80223bc07650e59bd16b43c6d971828a589db6f43dfa50a7a1ab42): Bind for 0.0.0.0:50000 falhou: a porta já está alocada.
docker run -it -p 80:80 hello-world
docker: Resposta de erro do daemon: o driver falhou ao programar a conectividade externa no endpoint cocky_goldberg (8dab653c7575c298efea1b808ef2ff16f19bb6c23f51612787e19a434ceeb2ff): Bind for 0.0.0.0:80 falhou: a porta já está alocada.
topo | zumbi grep
Tarefas: 319 no total, 1 em execução, 181 dormindo, 0 parado, 2 zumbis
uname -r
4.14.35-1844.4.5.el7uek.x86_64
@ lorenzo-pasa Eu me deparei com o mesmo problema para o serviço cônsul e seu truque funcionou para mim. Obrigado pela solução.
docker stop $ (docker ps -a -q)
docker rm $ (docker ps -a -q)
Em seguida, remova todos os dados existentes, por exemplo, docker volume rm docker_db_data
docker-compose up
Esta solução de @ joseph-luketelo (obrigado!) Funcionou no MacOS Mojave. Nem precisava "remover nenhum dado existente ...". Apenas rodar os primeiros dois comandos resolveu.
/var/lib/docker/network/files/local-kv.db
(com tudo desligado e para baixo) não funcionoudocker-proxy
instâncias que ocupam as portas não funcionou (nada mais aparece na saída do netstat para aquela porta, mas ainda assim esta mensagem de erro).docker-compose up
apenas trava indefinidamente.Isso tem acontecido comigo quase que semanalmente há mais ou menos um mês e, até agora, a única coisa que funciona é reinstalar o docker todas as vezes. Por que está fechado? Mesmo que as etapas acima tenham ocorrido, este é claramente um bug de alguma variedade ...
todas as soluções mencionadas não funcionaram para mim.
Isso funcionou:
sudo rm -rf /var/lib/docker
sudo service docker restart # to re-create the db again
Também tentei reinstalar o docker e o docker-compose, mas não tenho ideia se essa etapa ajuda. Não funcionou até que eu executei as etapas mencionadas acima.
Tive o mesmo problema hoje (com um contêiner
postgres
) e, apesar de ter tentadodocker-compose down
eup
novamente, o problema ainda persiste.Tanto
docker-compose ps
quantodocker ps
me mostram uma saída vazia.Eu posso ter encontrado uma solução, no entanto:
é assim que meu serviço
postgres
é definidoversion: '2.1' services: postgres: image: postgres:9.5.4 env_file: - docker-compose.env ports: - 5432:5432
e, no meu caso, a correção foi simplesmente desabilitar a vinculação da porta, ou seja, alterar a última parte como:
ports: - 5432 (this also solve my problem)
Não tenho certeza se essa é a solução certa, nem se ela pode ser aplicada a todos os casos de uso.
Pode ser um problema com
docker-compose
si?
Para referência:$ docker-compose --version docker-compose version 1.12.0, build b31ff33
desabilitar a vinculação de portas também resolveu meu problema
Eu estava recebendo o mesmo erro depois de reconstruir minha configuração do docker.
ハ➜ docker-compose up
Eu tentei:
ハ➜ docker-compose down
mas ainda enfrentou o mesmo 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.
Em seguida, tentei reiniciar o aplicativo Docker e saí do meu IDE 'Visual Studio Code', que tem uma extensão docker ...
Em seguida, tentei mais uma vez e tentei netstat na porta.
ハ➜ netstat -n | grep 10002
Nada encontrado para essa porta ... Deveria ter tentado isso antes.
ハ➜ docker-compose up
Parece que a extensão do Visual Studio Code Docker pode ser o problema para mim.
Você pode compartilhar a configuração do arquivo docker-compose?
você precisa remover o espelhamento de porta
Funcionou para mim
docker-compose down
docker network prune
sudo service docker restart
docker-compose up
Tive o mesmo problema hoje (com um contêiner
postgres
) e, apesar de ter tentadodocker-compose down
eup
novamente, o problema ainda persiste.Tanto
docker-compose ps
quantodocker ps
me mostram uma saída vazia.Eu posso ter encontrado uma solução, no entanto:
é assim que meu serviço
postgres
é definidoversion: '2.1' services: postgres: image: postgres:9.5.4 env_file: - docker-compose.env ports: - 5432:5432
e, no meu caso, a correção foi simplesmente desabilitar a vinculação da porta, ou seja, alterar a última parte como:
ports: - 5432
Não tenho certeza se essa é a solução certa, nem se ela pode ser aplicada a todos os casos de uso.
Pode ser um problema com
docker-compose
si?
Para referência:$ docker-compose --version docker-compose version 1.12.0, build b31ff33
@ lorenzo-pasa Obrigado, essa solução funcionou para mim.
Simplesmente reiniciar o daemon do docker desktop no Mac resolveu o problema para mim (Docker Desktop 2.2.0.4).
Parece que algo se comportou mal na inicialização.
docker stop $ (docker ps -a -q)
Execute este comando antes de tentar outro fixo como -8080: 8080 a -8080 ou mesmo docker rm $ (...)
Reinicializei minha máquina e ela começou a funcionar novamente. Provavelmente não é uma solução precisa, mas funcionou
Se docker ps não produzir nada e docker-compose down / up não ajudar, verifique se a porta é usada com este comando:
sudo lsof -i -P -n | grep 9200
Se estiver, basta executar:
sudo service docker restart
tem o mesmo problema. Eu faço :
docker-compose down
docker-compose build
docker-compose up -d
mas às vezes o erro acontece
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
Não consigo reiniciar o docker porque outro contêiner é executado lá
@mogadanez conforme proposto por @KorossGame você pode tentar descobrir qual processo já está usando esta porta.
Tenha um bom dia,
@pandaatrail
seu docker, mas não ajuda, não consigo reiniciar o docker inteiro.
@mogadanez Se você não pode reiniciar o docker - verifique o que está usando uma porta específica.
sudo lsof -i -P -n | grep 9200
Verifique também se os contêineres docker não estão usando as mesmas portas de entrada com:
docker ps
Simplesmente não funciona. lsof
não mostra nenhuma porta sendo usada. Remover imagens e recriar a pilha inteira não funciona. Reiniciar o docker não funciona. A única coisa que funcionou foi reiniciar o sistema. Boa sorte.
Olá,
você só precisa verificar se há outro serviço usando a mesma porta,
docker-compose down
netstat -ano | findstr :port
(como exemplo netstat -ano | findstr :18080
)taskkill /pid the_pid_of_the_port /f
docker-compose up
E é isso 😄
@olfamoussaoui Tentei tudo isso, mas para mac. Nenhuma solução funciona.
@gabrielhpugliese você tentou ver se a porta está em uso?
@olfamoussaoui Tentei tudo isso, mas para mac. Nenhuma solução funciona.
Tive um comportamento de composição semelhante no Ubuntu. Foi um efeito colateral, baseado em configurações de iptables erradas. A tradução da porta deve ser verificada e liberada manualmente. Não se lembra da sintaxe correta para MacOS. Não deveria ser tão difícil encontrá-lo pela pedra de roseta.
Não entendo porque preciso de tudo isso e o problema está longe. Isto
não é uma nova configuração que estou construindo e não criei um novo
contêineres / serviços. Acabei de recriar meu container de servidor com up -d
--Construir. Muito estranho.
vitaly-zverev [email protected] schrieb am Mi., 19 de agosto de 2020,
17:27:
@olfamoussaoui https://github.com/olfamoussaoui Eu tentei tudo isso, mas
para mac. Nenhuma solução funciona.Tive um comportamento de composição semelhante no Ubuntu. Foi um efeito colateral, com base em
configurações de iptables erradas. A tradução da porta deve ser verificada e liberada
manualmente. Não se lembra da sintaxe correta para MacOS. Não deveria ser tão difícil
para encontrá-lo pela pedra de roseta.-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/docker/compose/issues/4950#issuecomment-676495723 ,
ou cancelar
https://github.com/notifications/unsubscribe-auth/AAJR3UTBMGLV2ECW5GCNQDTSBPVNXANCNFSM4DQLFGPQ
.
Não entendo porque preciso de tudo isso e o problema está longe. Não é uma nova configuração que estou construindo e não criei novos contêineres / serviços. Acabei de recriar meu container de servidor com up -d --build. Muito estranho. vitaly-zverev [email protected] schrieb am Mi., 19 de agosto de 2020, 17:27:
…
@olfamoussaoui https://github.com/olfamoussaoui Tentei tudo isso, mas para mac. Nenhuma solução funciona. Tive um comportamento de composição semelhante no Ubuntu. Foi um efeito colateral, baseado em configurações de iptables erradas. A tradução da porta deve ser verificada e liberada manualmente. Não se lembra da sintaxe correta para MacOS. Não deveria ser tão difícil encontrá-lo pela pedra de roseta. - Você está recebendo isso porque foi mencionado. Responda a este e-mail diretamente, visualize-o no GitHub < # 4950 (comentário) > ou cancele a inscrição https://github.com/notifications/unsubscribe-auth/AAJR3UTBMGLV2ECW5GCNQDTSBPVNXANCNFSM4DQLFGPQ .
Ummm, Ok, pelo que entendi, sua causa raiz deve ser analisada no local onde o docker está integrado com a tradução de rede. Depende do sistema operacional e tem muitas implicações,
assim como qualquer bug de integração.
Tem havido muitas respostas boas. Achei que o problema era outro aplicativo que instalei (Sky Go) no Catalina que, de alguma forma, estava causando um conflito de porta, embora estivesse fechado.
Vale a pena verificar se esses aplicativos (incluindo o Skype) não estão causando o problema.
Eu também enfrentei o mesmo problema. Estou usando a porta 8080 e toda vez que tentei executar o docker, ele mostrou a porta 8080 já em uso. Em seguida, verifiquei se algum outro aplicativo bloqueou a porta, mas não encontrei nada.
Em seguida, siga os seguintes passos.
Se você estiver no WSL2, verifique se o Hyper-V está habilitado ou não. Se não estiver, basta habilitá-lo, e isso bastará.
A reinicialização do sistema operacional me ajudou
Comentários muito úteis
Isso 👇 funciona para mim !!