1
resposta

[Bug] Não consigo executar o comando de monitoramento

Ao roda esse comando:
docker run --rm williamyeh/wrk -c 10 -t 4 -d 10 http://host.docker.internal:8123/api/test

Tenho esse erro:
unable to connect to 127.0.0.1:8123 Connection refused

Estou usando um máquina linux(ubuntu)

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Olá Romulo.
Tudo bem?
O erro que você está enfrentando geralmente ocorre quando o serviço que você está tentando acessar não está disponível ou não está aceitando conexões na porta especificada.
Quando você está executando o comando docker run com a opção host.docker.internal, ela pode não funcionar da mesma forma em uma máquina Linux, já que essa configuração é específica para ambientes Docker no macOS e no Windows.
No Linux, você precisa garantir que o Docker consiga se comunicar corretamente com o host da máquina.
Em vez de usar host.docker.internal, experimente usar o IP da sua máquina.
Você pode descobrir o IP da sua máquina usando o comando ip addr ou hostname -I.
Exemplo de substituição do IP:

docker run --rm williamyeh/wrk -c 10 -t 4 -d 10 http://<SEU_IP>:8123/api/test

Substitua <SEU_IP> pelo IP da sua máquina.
Verifique se o serviço da sua aplicação PHP está realmente rodando e ouvindo na porta 8123.
Você pode fazer isso com o comando:

sudo netstat -tuln | grep 8123

Ou use ss:

ss -tuln | grep 8123

Se você não encontrar nenhum processo ouvindo na porta 8123, significa que o serviço não está ativo.
Verifique se o servidor PHP está em funcionamento ou reinicie-o, se necessário.
Certifique-se de que o firewall no seu sistema não está bloqueando a porta 8123.
Você pode verificar as regras de firewall com:

sudo ufw status

Se necessário, libere a porta com:

sudo ufw allow 8123

Certifique-se de que o Docker tem acesso à rede corretamente.
Caso o Docker esteja em uma rede isolada, pode ser que ele não consiga se comunicar com a sua máquina local.
Uma alternativa seria adicionar uma rede de ponte (bridge) ao comando Docker, se você estiver usando redes personalizadas.
Os logs podem fornecer mais informações sobre o que pode estar acontecendo com o serviço dentro do contêiner.
Use o seguinte comando para verificar os logs:

docker logs <container_id>

Tente acessar o endpoint diretamente da sua máquina, sem usar o wrk, com curl ou wget, para garantir que o serviço está realmente disponível:

curl http://<SEU_IP>:8123/api/test

Se você receber uma resposta, o problema pode estar no comando do wrk ou na forma como o Docker está configurado.
Tente esses passos e veja se algum deles resolve o problema.
Me envie um feedback com os resultados.
Bons estudos.
Até...