Docker - TRATANDO LOGS

docker

#1

No capitulo 3 do livro fala sobre o redirecionar os logs do Nginx para stdout e stderre usa o seguinte DockerFile :
FROM ubuntu
MAINTAINER Daniel Romero infoslack@gmail.com
RUN apt-get update
RUN apt-get install -y nginx
ADD exemplo /etc/nginx/sites-enabled/default
RUN ln -sf /dev/stdout /var/log/nginx/access.log
RUN ln -sf /dev/stderr /var/log/nginx/error.log
EXPOSE 80
CMD [“nginx”, “-g”, “daemon off;”]

ao criar a imagem e executar o container (simulando as requisições) apresenta
o seguinte erro: curl: (56) Recv failure: Connection reset by peer

embora o status do container seja:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8f7fb8f98cea nginx “nginx -g 'daemon off” 9 minutes ago Up 9 minutes 0.0.0.0:80->80/tcp tiny_easley


#2

Olá, tudo bem ?

Poderia passar mais detalhes do seu ambiente ? Qual o seu sistema operacional ?


#3

sim, cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION=“Ubuntu 16.04.1 LTS”

docker:
Docker version 1.12.1, build 23cf638


#4

Você tentou ter acesso via “localhost” em vez do endereço “127.0.0.1” ?

Pode informar as configurações do /etc/hosts ?


#5

tentei usar localhost sim, deu o mesmo erro, eu também usei o comento docker inspect id_cont para ver o ip da containerm, responde ao ping, tentei usar este endereço também embora sem sucesso, e respondendo a sua pergunta
cat /etc/hosts
127.0.0.1 localhost.localdomain kylix

The following lines are desirable for IPv6 capable hosts

::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters


#6

Daniel descobri o problema, no livro é pedido para adicionar um arquivo de exemplo da configuração do nginx, no arquivo Dockfile tem: ADD exemplo /etc/nginx/sites-enabled/default
e veja o conteudo:
#server {

listen 8080 default_server;

server_name localhost;

root /usr/share/nginx/html;

index index.html index.htm;

#}
isto é, a porta esta errada, mudei a porta para 80 nestes arquivo, re-criei a imagem, executei o container e funcionou, sugiro mencionar isso no livro.


#7

Tem razão, o capítulo inteiro utilizei a porta 8080.
Porém no exemplo para tratar os logs em vez de criar o container mapeando as portas como fiz no exemplo anterior “8080:8080” deixei apenas “80:80”.

Obrigado pelo feedback!
Farei a correção :wink: