contêiner do docker com apache2

0

Eu instalei o docker com os pacotes docker.io e lxc . Eu queria testar o docker enquanto criava um servidor web apache2. Eu criei o container com

sudo docker.io run -i -t -p :8080 ubuntu:14.10 /bin/bash

Do que eu instalei o apache2 com

apt-get install apache2

Depois que eu modifiquei o ports.conf que o apache2 escuta a porta 8080 eu iniciei o serviço apache2. Após a chamada para o IP na porta 8080 no navegador, não obtenho um resultado.

Tenho que anotar outra coisa? Obrigado

    
por ssd_rider 07.06.2015 / 11:35

1 resposta

3

Você tem vários problemas aqui, por isso acho que talvez precise gastar mais algum tempo aprendendo o Docker, consulte: Guia do Usuário do Docker , mas para dar algumas dicas ...

  1. Primeiramente, há um problema com sua opção -p . Você especificou apenas a porta no dentro , ou seja, no contêiner docker (8080). Você não especificou a porta no fora , ou seja, o host. Isso significa que o Docker se ligará a alguma porta aleatória do lado de fora. Você pode descobrir qual porta está executando docker ps . Então você verá algo como

    0.0.0.0:32769->8080/tcp 
    

    que indica que, se você visitou a porta 32769 em seu navegador, poderá acessar o Apache porque o Docker ligou a porta 32769 no host à porta 8080 dentro do contêiner.

    O que você realmente quer fazer é: -p 8080:8080 para garantir que a porta seja a mesma no host e no contêiner.

  2. Em segundo lugar, não está claro para mim se você instalou o apache2 no container ou no host. Normalmente você escreveria um Dockerfile baseado na imagem do Ubuntu que você deseja usar, o qual especifica que o apache deve ser instalado quando a imagem do Docker é construída. Isso tudo acontece antes de você executar o contêiner. Você deve evitar instalar qualquer coisa em um contêiner Docker depois de executá-lo, porque ele será perdido depois que você excluir essa instância do contêiner.

por Richard Corfield 15.06.2015 / 17:29