1、创建一个工作目录
mkdir apache_ubuntu && cd apache_ubuntu
touch Dockerfile run.sh
mkdir sample
2、编写Dockerfile
#设置继承自我们创建的sshd镜像
FROM sshd:dockerfile
#创建者的基本信息
MAINTAINER waitfish from dockerpool.com(dwj_zz@163.com)
#设置环境变量,所有操作都是非交互的
ENV DEBIAN_FRONTEND noninteractive
#安装
RUN apt-get -yq install apache2&&\
rm -rf /var/lib/apt/lists/*
#注意这里要更改系统的时区设置,因为在web应用中经常会用到时区这个系统变量,默认的ubuntu会让你的应用程序发生不可思议的效果
RUN echo "Asia/Shanghai" > /etc/timezone && \
dpkg-reconfigure -f noninteractive tzdata
#添加我们的脚本,并设置权限,这里覆盖之前放在这个位置的脚本
ADD run.sh /run.sh
RUN chmod 755 /*.sh
#添加一个示例的web站点,删掉默认安装在apache文件夹下面的文件,并将我们添加的实力用软连接连接到/var/www/html目录下面
RUN mkdir -p /var/local/apache2 && mkdir -p /app && rm -rf /var/www/html && ln -s /app /var/www/html
COPY sample/ /app
#设置apache相关的一些变量,在容器启动的时候可以使用-e参数替代
ENV APACHE_RUN_USER www-data
ENV APACHR_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apache2
ENV APACHE_PID_FILE /var/run/apache2.pid
ENV APACHE_RUN_DIR /var/run/apache2
ENV APACHE_LOCK_DIR /var/look/apache2
ENV APACHE_SERVERADMIN admin@localhost
ENV APACHE_SERVERNAME localhost
ENV APACHE_SERVERALIAS docker.localhost
ENV APACHE_DOCUMENTROOT /var/www
EXPOSE 80
WORKDIR /app
CMD ["/run.sh"]
3、在sanple目录下创建index.html文件
cd sample
vim index.html
<!DOCTYPE html>
<html>
<body>
<p>
Hello,Docker!
</p>
</body>
</html>
4、run.sh脚本内容只是启动Apache服务
vim run.sh
#!/bin/bash
exec apache2 -D FOREGROUND
5、创建apache:ubuntu镜像
docker build -t apache:ubuntu .
6、查看镜像
docker images
7、测试镜像
docker run -d -p apache:ubuntu
curl 127.0.0.1:49172