Não, não está correto, pois você deve ter um CMD para executar no final.
Também há várias práticas recomendadas que você deve incluir para criar menos instantâneos intermediários de contêiner e menor saída:
- você não deve executar
apt-get
várias vezes - você deve executar
apt-get update
antes de executarapt-get install
- você deve limpar depois de executar
apt-get install
- você deve incluir um mantenedor
Tente algo como:
# Dockerfile that modifies oraclelinux:6.6 to include an Apache HTTP server
FROM ubuntu:14.04
MAINTAINER Supun Rathnayake
RUN apt-get update && apt-get install -y \
apache2 \
mysql-client \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN echo "HTTP server running on guest" > /var/www/html/index.html
EXPOSE 80
EXPOSE 3306
CMD ["your command to run apache"]
Você provavelmente deve olhar para o docker-hub para um projeto apache2 com muitos downloads e analisar seu Dockerfile, o que é muito instrutivo.
Em princípio, você pode executar o seu cliente mysql dentro do mesmo container, mas isso provavelmente requer algum agendador para iniciar tanto o daemon do apache quanto o do mysql. Alternativamente, você deve procurar colocar o mysql em outro lugar (ou usar um dos contêineres padrão do Dockerhub e vinculá-los ao seu).