使用dockerfile制作apache镜像

使用dockerfile制作apache镜像

创建apache目录

[root@localhost ~]# tree apache/
apache/
├── Dockerfile
└── files
    ├── apr-1.7.0.tar.gz
    ├── apr-util-1.6.1.tar.gz
    └── httpd-2.4.49.tar.gz

1 directory, 4 files

编写Dockerfile

[root@localhost apache]# cat Dockerfile 
# 第一行必须指定基于的基础镜像
FROM centos

# 维护者信息
LABEL MAINTAINER='1@2.com'

ENV httpd_version 2.4.49
ENV apr_version 1.7.0
ENV util_version 1.6.1

#传输httpd编译所需的源码包
ADD files/*  /usr/src/

WORKDIR /usr/src/

# 镜像操作指令
RUN yum groups mark install 'Development Tools' -y && \
    yum -y install wget openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ make && \
    useradd -r -M -s /sbin/nologin apache && \
    cd apr-$apr_version && \
    sed -i '/$RM "$cfgfile"/d' configure && \
    ./configure --prefix=/usr/local/apr && \
    make && make install && \
    cd ../apr-util-$util_version && \ 
    ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && \
    make && make install && \
    cd ../httpd-$httpd_version && \
    ./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 && \
    sed -i '/#ServerName/s/#//g' /usr/local/apache/conf/httpd.conf

#开放端口号
EXPOSE  80

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

创建容器

[root@localhost ~]# docker build -t apache:latest apache
[root@localhost ~]# docker tag a8456b3d7ab6 xxkk/httpd:latest
[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED              SIZE
xxkk/httpd   latest    a8456b3d7ab6   About a minute ago   704MB
[root@localhost ~]# docker run -tid --name httpd -p 80:80 a8456b3d7ab6
1bf14551603b8e699d410e0a748856c4a75d709aa7172c0a7429c08158d7c98e
[root@localhost ~]# ss -antl
State               Recv-Q              Send-Q                           Local Address:Port                           Peer Address:Port             Process             
LISTEN              0                   128                                    0.0.0.0:80                                  0.0.0.0:*                                    
LISTEN              0                   128                                    0.0.0.0:22                                  0.0.0.0:*                                    
LISTEN              0                   128                                       [::]:80                                     [::]:*                                    
LISTEN              0                   128                                       [::]:22                                     [::]:*                                    
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                               NAMES
1bf14551603b   a8456b3d7ab6   "/usr/local/apache/b…"   44 seconds ago   Up 41 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp   httpd


在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值