Contêiner LXD recusando conexões do host

1

Eu sou muito novo no LXD recentemente descobri isso. Estou progredindo nas interações básicas com imagens e containers - parece promissor.

Atualmente, estou preso a um problema de conexão do host a um serviço em execução em um contêiner local. Esta é a minha primeira vez tentando isso. Eu recebo um erro de "conexão recusada". Mais detalhes abaixo:

user@sparky1:~$ curl 10.0.3.49
curl: (7) Failed to connect to 10.0.3.49 port 80: Connection refused
user@sparky1:~$ 

O host é Ubuntu Server 14.04 no meu laptop - é uma nova instalação e é bastante simples-vanila. Deixei o sistema fazer toda a configuração (incluindo a ponte lxcbr0) e não alterei nenhum dos padrões prontos para uso.

Estou executando um contêiner baseado em uma imagem do CentOSv6. O contêiner é iniciado e dentro de eu estou executando um servidor web. De dentro do contêiner eu posso conectar-me ao seu servidor web local na porta 80 muito bem (executando "curl hostname"). Ele se conecta no loopback IP 127.0.0.1 Eu recebo uma resposta válida do servidor web local de dentro do container. Yay.

Uma resposta bem-sucedida (embora seja uma resposta 403):

[root@wc1 ~]# curl wc1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /
on this server.</p>
<hr>
<address>IBM_HTTP_Server at wc1 Port 80</address>
</body></html>
[root@wc1 ~]#

Se eu tentar conectar via IP na bridge, seja de dentro do container ou do host, eu recebo o erro mencionado "conexão recusada".

Então, estou tentando descobrir o que será necessário para permitir conexões do host para o servidor da Web em execução no contêiner. Passei algumas horas pesquisando e não encontrei a resposta (ou fui muito densa para reconhecê-la).

O firewall está desativado ("status ufw" diz isso). o que estou perdendo? Agradecemos antecipadamente.

    
por David MacBride 05.11.2015 / 16:31

1 resposta

1

Eu resolvi meu próprio problema. Inicialmente, recordei (supus suspiro) que eu havia especificado o IP ao emitir o comando 'curl' de dentro do container, mas na verdade eu havia especificado o nome do host. Uma vez que eu notei que eu tinha de fato especificado o nome do host, e que o hostanme resolveu o loopback, eu descobri o meu problema.

No meu httpd.conf apache, o Listen di, que eu não notei resolvido para o dispositivo de loopback e não para o IP na ponte lxcbr0. rective especificou o nome do host. O arquivo httpd.conf foi gerado automaticamente por uma ferramenta de fornecedor, então não pensei nisso a princípio. Depois que eu mudei a diretiva Listen para ouvir o IP correto (10.0.3.49), tudo funcionou.

    
por David MacBride 05.11.2015 / 18:13