Docker入门-构建Apache镜像

Docker构建Apache镜像

本篇主要介绍apache镜像的构建

使用DockerHub镜像

1.创建工作目录,准备Dockerfile文件及index.html

[root@localhost docker]# mkdir apache
[root@localhost docker]# cd apache/
[root@localhost apache]# vim Dockerfile
[root@localhost apache]# vim public-html
[root@localhost apache]# cat Dockerfile 
FROM httpd:2.4
COPY ./public-html /usr/local/apache2/htdocs/
[root@localhost apache]# mkdir public-html
[root@localhost apache]# cat public-html/index.html
<! DOCTYPE html>
<html>
  <body>
    <p>Hello Docker!</p>
  </body>
</html>

2.构建镜像并启动

[root@localhost apache]# docker build -t apache2-image .
[root@localhost apache]# docker run -d -P apache2-image
eef5ae35db15501f758c5fb78fd9b2724a46b0031dbee259b9fa42cb991b5d10
[root@localhost apache]# docker ps|grep apache
eef5ae35db15        apache2-image              "httpd-foreground"       2 minutes ago       Up 2 minutes        0.0.0.0:32775->80/tcp                                                                        mystifying_ride
[root@localhost apache]# curl localhost:32775
<! DOCTYPE html>
<html>
  <body>
    <p>Hello Docker!</p>
  </body>
</html>
[root@localhost apache]# 

3.除了使用Dockerfile打包镜像外,也可以使用挂载数据卷的方式来启动服务

[root@localhost apache]# docker run -d -it --rm --name my-apache-app -P -v /u01/learn/docker/apache/:/usr/local/apache2/htdocs httpd:2.4
6f75d2f4e0dc4d750af0ff0e29ea790fdfe3e0b973aab6117a45ed0f447b6611
[root@localhost apache]# docker ps|grep my
6f75d2f4e0dc        httpd:2.4                  "httpd-foreground"       7 seconds ago       Up 7 seconds        0.0.0.0:32777->80/tcp                                                                        my-apache-app
[root@localhost apache]# curl localhost:32777
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
 <head>
  <title>Index of /</title>
 </head>
 <body>
<h1>Index of /</h1>
<ul><li><a href="Dockerfile"> Dockerfile</a></li>
<li><a href="public-html/"> public-html/</a></li>
</ul>
</body></html>
[root@localhost apache]# curl http://192.168.15.79:32777/public-html/
<! DOCTYPE html>
<html>
  <body>
    <p>Hello Docker!</p>
  </body>
</html>
[root@localhost apache]# 

使用自定义镜像

1.准备工作目录及文件

[root@localhost docker]# mkdir apache_ubuntu && cd apache_ubuntu
[root@localhost apache_ubuntu]# touch Dockerfile run.sh
[root@localhost apache_ubuntu]# mkdir sample

2.Dockerfile编写

[root@localhost apache_ubuntu]# cat Dockerfile 
#基于Docker入门-为镜像添加SSH服务文章中使用Dockerfile创建镜像
#https://blog.csdn.net/weixin_43169156/article/details/115127894
FROM sshd:dockerfile

#创建者信息
MAINTAINER docker_user(chundaoc@docker.com)

#设置环境变量,所有操作都是非交互的
ENV DEBIAN_FRONTEND noninteractive

#安装
RUN apt-get -yq install apache2 && apt-get -y install tzdata &&\
    rm -rf /var/lib/apt/lists/*

#更改系统的时区设置
RUN echo "Asia/Shanghai">/etc/timezone && dpkg-reconfigure -f noninteractive tzdata

#添加用户的脚本,并设置权限,这里会覆盖之前用于启动ssh的run脚本
ADD run.sh /run.sh
RUN chmod +x /*.sh

#添加测试web页面,删掉apache默认的文件,将示例软连接到/var/www/html目录
RUN mkdir -p /var/lock/apache2 && mkdir -p /var/run/apache2 && mkdir -p /app && rm -fr /var/www/html && ln -s /app /var/www/html
COPY sample/ /app


#设置apache变量,在容器启动时可以使用-e参数代替
ENV APACHE_RUN_GROUP wwww-data
ENV APACHE_RUN_USER 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/lock/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"]
[root@localhost apache_ubuntu]#

3.sample站点添加html文件

[root@localhost apache_ubuntu]# cat sample/index.html 
<! DOCTYPE html>
<html>
  <body>
    <p>Hello Docker!</p>
  </body>
</html>

4.编写run脚本

[root@localhost apache_ubuntu]# cat run.sh 
#! /bin/bash
exec apache2 -D FOREGROUND
[root@localhost apache_ubuntu]#

5.构建镜像并启动,不过启动报错,此报错待解决

[root@localhost apache_ubuntu]# docker build -t apache:ubuntu .
[root@localhost apache_ubuntu]# docker run -P apache:ubuntu
AH00544: apache2: bad group name wwww-data
[root@localhost apache_ubuntu]# 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值