apache的Dockerfile文件

本文介绍了如何使用Dockerfile从CentOS基础镜像创建包含Apache、SSL、CGI等功能的定制镜像,并部署到容器中,以及如何将镜像推送到Docker Hub。

apache的Dockerfile文件

##创建apache服务的dockerfile文件目录
[root@localhost ~]# mkdir apache
[root@localhost ~]# cd apache/
[root@localhost apache]# mkdir files
[root@localhost apache]# cd files/

##上传源码包
[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='luochuran 1225514226@qq.com'
ADD files/* /usr/local/
WORKDIR /usr/local
RUN yum -y install openssl-devel pcre-devel pcre expat-devel libtool gcc gcc-c++ make which && \
    sed -i '/$RM "$cfgfile"/d' apr-1.7.0/configure && \
    ./apr-1.7.0/configure --prefix=/usr/local/apr && make && make install && \
    ./apr-util-1.6.1/configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install && \
    ./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 
CMD ["/usr/local/apache/bin/apachectl","-D","FOREGROUND"]


##构建镜像
[root@localhost ~]# docker build -t 1225514226/apache apache/
Sending build context to Docker daemon  11.07MB
Step 1/7 : FROM centos
 ---> 5d0da3dc9764
Step 2/7 : LABEL WAINTAINER='luochuran 1225514226@qq.com'
 ---> Using cache
 ---> b07711e6377c
Step 3/7 : ADD files/* /usr/local/
 ---> f60a20330abb
Step 4/7 : WORKDIR /usr/local
 ---> Running in 5fe38b9fb88a
Removing intermediate container 5fe38b9fb88a
 ---> 7bb082e4fcbf
Step 5/7 : RUN yum -y install openssl-devel pcre-devel pcre expat-devel libtool gcc gcc-c++ make which &&     sed -i '/$RM "$cfgfile"/d' apr-1.7.0/configure &&     ./apr-1.7.0/configure --prefix=/usr/local/apr && make && make install &&     ./apr-util-1.6.1/configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install &&     ./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
 ---> Running in 296174a923e0
·····省略部分·····
make[1]: Leaving directory '/usr/local'
Removing intermediate container 296174a923e0
 ---> 6e3f6cd4ee37
Step 6/7 : EXPOSE 80
 ---> Running in 251a17db3ede
Removing intermediate container 251a17db3ede
 ---> 4f03dd8f2b86
Step 7/7 : CMD ["/usr/local/apache/bin/apachectl","-D","FOREGROUND"]
 ---> Running in 702625fb4748
Removing intermediate container 702625fb4748
 ---> 5eb3dd8e7d66
Successfully built 5eb3dd8e7d66
Successfully tagged 1225514226/apache:latest
[root@localhost ~]#

##查看镜像
[root@localhost ~]# docker images 
REPOSITORY          TAG       IMAGE ID       CREATED         SIZE
1225514226/apache   latest    5eb3dd8e7d66   2 minutes ago   700MB
1225514226/nginx    v2.0      779333eb1a39   5 days ago      601MB
centos              latest    5d0da3dc9764   2 months ago    231MB
[root@localhost ~]#

##使用新的镜像创建容器
[root@localhost ~]# docker run -d -p 80:80 --name apache 1225514226/apache
2719c466e8317ed87aa71c2a92ef5e2ebf0663d746d1cc21dec70c3202c74ea1
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE               COMMAND                  CREATED         STATUS         PORTS                               NAMES
2719c466e831   1225514226/apache   "/usr/local/apache/b…"   3 seconds ago   Up 3 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp   apache
[root@localhost ~]#

访问测试
在这里插入图片描述

上传到官方仓库

##上传镜像到网站##登录docker
[root@localhost ~]# docker login 
Authenticating with existing credentials...
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

##上传镜像到网站
[root@localhost ~]# docker push 1225514226/apache
The push refers to repository [docker.io/1225514226/apache]
e1152074ce5a: Layer already exists 
63da29d0dfbc: Layer already exists 
2ece98c51a08: Layer already exists 
74ddd0ec08fa: Layer already exists 
latest: digest: sha256:bc0c20092b38575c79adb1ad8fce9f7736ffe07e6677609ae26cc4efeb646441 size: 1161
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值