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 ...
-
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á executandodocker ps
. Então você verá algo como0.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. -
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.