用dockerfile做一个apache的镜像

创建存放apache服务Dockerfile文件的目录

[root@localhost ~]# mkdir apache
[root@localhost ~]# cd apache/
[root@localhost apache]# mkdir files

上传apr、apr-util、httpd源码包

[root@localhost apache]# cd files/
[root@localhost files]# ls
apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.48.tar.gz

编写Dockerfile文件

[root@localhost apache]# vim Dockerfile
# 基础镜像
FROM centos

# 作者信息
LABEL WAINTAINER='wjj200112 1234567890@qq.com'

# 上传本机上的apache压缩包,传输过程中会自动解压
ADD files/* /usr/local

# 切换当前目录
WORKDIR /usr/local/

# 编译安装
RUN yum -y install openssl-devel pcre-devel pcre expat-devel libtool gcc gcc-c++ make which && \
    cd apr-1.7.0 && sed -i '/$RM "$cfgfile"/d' configure && \
    ./configure --prefix=/usr/local/apr && make && make install && \
    cd ../apr-util-1.6.1 && \
    ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && \
    make && make install && \
    cd ../httpd-2.4.48 && \
    ./configure --prefix=/usr/local/apache \
      --enable-so \
      --enable-ssl \
      --enable-cgi \
      --enable-rewrite \
      --with-zlib \
      --with-pcre \
      --with-apr=/usr/local/apr \
      --with-apr-util=/usr/local/apr-util/ \
      --enable-modules=most \
      --enable-mpms-shared=all \
      --with-mpm=prefork && make && make install

# 开放端口号
EXPOSE 80

# 设置存储卷
VOLUME ["/usr/local/apache/htdocs/"]

# 环境变量
ENV PATH /usr/local/apache/bin:$PATH

# 启动容器时执行的命令
CMD ["/usr/local/apache/bin/apachectl","-D","FOREGROUND"]

构建镜像

[root@localhost ~]# docker build -t wjj200112/httpd:latest apache
........此处省略多行执行过程
Removing intermediate container 45f40500358e
 ---> bcbbcad642d8
Step 6/9 : EXPOSE 80
 ---> Running in 726e648085b3
Removing intermediate container 726e648085b3
 ---> c3a106d80d8e
Step 7/9 : VOLUME ["/usr/local/apache/htdocs/"]
 ---> Running in 905edca5b645
Removing intermediate container 905edca5b645
 ---> 402d9495825d
Step 8/9 : ENV PATH /usr/local/apache/bin:$PATH
 ---> Running in 677167db82e7
Removing intermediate container 677167db82e7
 ---> cc5aab9ffa5f
Step 9/9 : CMD ["/usr/local/apache/bin/apachectl","-D","FOREGROUND"]
 ---> Running in c88a4ee5d4ce
Removing intermediate container c88a4ee5d4ce
 ---> 36472e701b79
Successfully built 36472e701b79
Successfully tagged wjj200112/httpd:latest

查看镜像

[root@localhost ~]# docker images
REPOSITORY        TAG       IMAGE ID       CREATED         SIZE
wjj200112/httpd   latest    36472e701b79   3 minutes ago   701MB
centos            latest    5d0da3dc9764   2 months ago    231MB

基于新镜像创建容器

[root@localhost ~]# docker run -d -P --name apache wjj200112/httpd:latest
fa9e3e4509fed96b79939ec7839ccb484591509de13c25413c87cd7c3025d926
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE                    COMMAND                  CREATED         STATUS         PORTS                                     NAMES
fa9e3e4509fe   wjj200112/httpd:latest   "/usr/local/apache/b…"   8 seconds ago   Up 7 seconds   0.0.0.0:49153->80/tcp, :::49153->80/tcp   apache

访问网页

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值