一看必会系列:dockerfile 练习3 继承方式创建apache镜像

来源:本站原创 Docker 超过208 views围观 0条评论

 

目录
../ubuntu_apache/
├── dockerfile
├── html
│   └── index.html
└── run.sh

相关文件内容
1.dockerfile
FROM reg.ccie.wang/test/ubuntu:sshd001  #继承前面做的镜像,已经包含sshd
MAINTAINER docker_user_jeff
ENV DEBIAN FRONTEND noninteractive
RUN apt-get -yq install apache2&&\
    rm -rf /var/lib/apt/lists/*
ADD run.sh /run.sh
RUN chmod 755 /*.sh
RUN mkdir -p /var/lock/apache2 &&mkdir -p /app &&\
    rm -fr /var/www/html && \
    ln -s /app /var/www/html &&\
    mkdir -p /var/run/apache2
COPY html/ /app/
ENV APACHE_RUN_USER www-data
ENV APACHE_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_SERVERNAME localhost
ENV APACHE_SERVERALIAS docker.localhost
ENV APACHE_DOCUMENTROOT /var/www
ENV APACHE_LOCK_DIR /var/lock/apache2

EXPOSE 80
WORKDIR /app
CMD ["/run.sh"]

2.run.sh
#!/bin/bash
#启动sshd
/usr/sbin/sshd &  
#启动 apache2
exec apache2 -D FOREGROUND

3. index.html
<h1>docker ubuntu_apache by jeff</h1>

建立镜像
docker build -t apache:ubuntu004 .

查看镜像
docker images |grep 004
apache                            ubuntu004           6197aa3de935        6 minutes ago       280MB

启动并查看 环境是否正确
docker run -it –rm apache:ubuntu004 env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=aad3a9045a75
TERM=xterm
DEBIAN=FRONTEND noninteractive
APACHE_RUN_USER=www-data
APACHE_RUN_GROUP=www-data
APACHE_LOG_DIR=/var/log/apache2
APACHE_PID_FILE=/var/run/apache2.pid
APACHE_RUN_DIR=/var/run/apache2
APACHE_SERVERNAME=localhost
APACHE_SERVERALIAS=docker.localhost
APACHE_DOCUMENTROOT=/var/www
APACHE_LOCK_DIR=/var/lock/apache2
HOME=/root

 

创建容器  并将容器内80端口映射到主机的 8081
# docker run -itd -p 8082:80 -p 18081:22 reg.ccie.wang/test/ubuntu:apache2.4.29 /run.sh
176ae6ea0ebbc1c8707576cece1a0265cf2b52839f1ec37fb9d7b0281a967a2e

# docker ps
CONTAINER ID        IMAGE                                    COMMAND              CREATED             STATUS              PORTS                                         NAMES
176ae6ea0ebb        reg.ccie.wang/test/ubuntu:apache2.4.29   "/run.sh"            4 seconds ago       Up 2 seconds        0.0.0.0:18081->22/tcp, 0.0.0.0:8082->80/tcp   condescending_noyce

回主机测试 8081服务是否正常
# curl localhost:8081
<h1>docker ubuntu_apache by jeff</h1>
#以上结果为正常

查看安装apache2产生的可回收文件

root@89bcf36427d7:/# du -h –max-depth=1 /var/lib/apt/lists/
4.0K    /var/lib/apt/lists/partial
4.0K    /var/lib/apt/lists/auxfiles
24M    /var/lib/apt/lists/

删除减少镜像
root@89bcf36427d7:/# rm -rf /var/lib/apt/lists/*
root@89bcf36427d7:/#
root@89bcf36427d7:/#
root@89bcf36427d7:/# du -h –max-depth=1 /var/lib/apt/lists/
8.0K    /var/lib/apt/lists/
root@89bcf36427d7:/#

报错   docker写的有问题  值 没有传入镜像 已更正

# docker run -it –rm apache:ubuntu002 /run.sh
apache2: Syntax error on line 80 of /etc/apache2/apache2.conf: DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot

文章出自:CCIE那点事 http://www.jdccie.com/ 版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。 禁止全文转载。
本文链接:http://www.jdccie.com/?p=4084转载请注明转自CCIE那点事
如果喜欢:点此订阅本站
  • 相关文章
  • 为您推荐
  • 各种观点

暂时还木有人评论,坐等沙发!
发表评论

您必须 [ 登录 ] 才能发表留言!