栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

基于容器编译安装apache制作为镜像(优化版)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于容器编译安装apache制作为镜像(优化版)

文章目录
  • 1.docker安装
    • docker加速
  • 2.准备工作
    • 下载源码包
    • 布置容器
    • 容器内编译安装httpd
    • 优化容器
  • 3.制作镜像
  • 4.运行容器测试

1.docker安装
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# wget https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
[root@localhost yum.repos.d]# sed -i 's@https://download.docker.com@https://mirrors.tuna.tsinghua.edu.cn/docker-ce@g' docker-ce.repo
[root@localhost yum.repos.d]# yum install -y docker-ce  //正常安装
[root@localhost yum.repos.d]# yum install -y docker-ce --allowerasing  //--allowerasing自动替换冲突包
docker加速
[root@localhost ~]# systemctl start docker
[root@localhost ~]# cat > /etc/docker/daemon.json < {
>     "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"]
> }
> EOF
[root@localhost ~]# systemctl restart docker
2.准备工作 下载源码包
[root@localhost ~]#  wget https://downloads.apache.org/httpd/httpd-2.4.53.tar.gz https://downloads.apache.org/apr/apr-1.7.0.tar.gz https://downloads.apache.org/apr/apr-util-1.6.1.tar.gz
布置容器
[root@localhost ~]# docker pull centos  //拉取centos
[root@localhost ~]# docker images 
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
centos       latest    5d0da3dc9764   7 months ago   231MB

[root@localhost ~]# docker run -it --name c1 centos /bin/bash  //基于centos镜像创建容器c1

#开启新的终端查看
[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
834aadeb9298   centos    "/bin/bash"   20 seconds ago   Up 19 seconds             c1

#将apache的源码包传到c1容器内
[root@localhost ~]# docker cp apr-1.7.0.tar.gz c1:/root
[root@localhost ~]# docker cp apr-util-1.6.1.tar.gz c1:/root
[root@localhost ~]# docker cp httpd-2.4.53.tar.gz c1:/root
容器内编译安装httpd
#配置阿里源
[root@834aadeb9298 /]# cd /etc/yum.repos.d/   //删除yum仓库内的官方源
[root@834aadeb9298 yum.repos.d]# rm -rf *
[root@834aadeb9298 yum.repos.d]# ls
[root@834aadeb9298 yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo  //配置w为阿里源
[root@834aadeb9298 yum.repos.d]# yum makecache 
[root@834aadeb9298 yum.repos.d]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo

#安装依赖包
[root@834aadeb9298 ~]# yum groups mark install "Development Tools"  
[root@834aadeb9298 ~]# yum -y install openssl-devel pcre-devel expat-devel libtool make vim 

#解压
[root@834aadeb9298 ~]# tar xf apr-1.7.0.tar.gz 
[root@834aadeb9298 ~]# tar xf apr-util-1.6.1.tar.gz 
[root@834aadeb9298 ~]# tar xf httpd-2.4.53.tar.gz   

#编译apr
[root@834aadeb9298 ~]# cd apr-1.7.0                                                         
[root@834aadeb9298 apr-1.7.0]# vim configure
$RM "$cfgfile"  //删除或注释这一条
[root@834aadeb9298 apr-1.7.0]# ./configure --prefix=/usr/local/apr
[root@834aadeb9298 apr-1.7.0]# make
[root@834aadeb9298 apr-1.7.0]# make install

#编译apr-util
[root@834aadeb9298 ~]# cd apr-util-1.6.1
[root@834aadeb9298 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
[root@834aadeb9298 apr-util-1.6.1]# make 
[root@834aadeb9298 apr-util-1.6.1]# make install

#编译httpd
[root@834aadeb9298 httpd-2.4.53]# ./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=worker
[root@834aadeb9298 httpd-2.4.53]# make
[root@834aadeb9298 httpd-2.4.53]# make install

#设置环境变量
[root@834aadeb9298 ~]# echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/apache.sh
[root@834aadeb9298 ~]# source /etc/profile.d/apache.sh 
[root@834aadeb9298 ~]# which apachectl
/usr/local/apache/bin/apachectl
[root@834aadeb9298 ~]# which httpd    
/usr/local/apache/bin/httpd
[root@834aadeb9298 ~]# ln -s /usr/local/apache/include/ /usr/include/apache  //软连接
[root@834aadeb9298 ~]# vim /usr/local/apache/conf/httpd.conf 
#ServerName www.example.com:80  //取消这一条的注释 取消告警信息
[root@834aadeb9298 ~]# apachectl start   //开启80端口
[root@834aadeb9298 ~]# 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:*         
优化容器
#因为已经安装了所以源码包可以删除
[root@834aadeb9298 /]# cd root/ 
[root@834aadeb9298 ~]# ls
anaconda-ks.cfg    apr-1.7.0.tar.gz       httpd-2.4.53
anaconda-post.log  apr-util-1.6.1         httpd-2.4.53.tar.gz
apr-1.7.0          apr-util-1.6.1.tar.gz  original-ks.cfg
[root@834aadeb9298 ~]# rm -rf *gz      
[root@834aadeb9298 ~]# rm -rf apr-1.7.0 httpd-2.4.53 apr-util-1.6.1/
[root@834aadeb9298 ~]# ls
anaconda-ks.cfg  anaconda-post.log  original-ks.cfg

[root@834aadeb9298 ~]# dnf -y remove gcc make  //卸载载编译工具

3.制作镜像
[root@localhost ~]# docker commit -a 'zjgg <1@2.com>' -c 'CMD ["/usr/local/apache/bin/httpd","-D","FOREGROUND"]' -p c1 httpd:v0.1
sha256:abdf3f5724cbb701fc709c698fb6badd1217a708beb42da3449a96575ec97d63
[root@localhost ~]# docker images 
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
httpd        v0.1      abdf3f5724cb   8 seconds ago   412MB
centos       latest    5d0da3dc9764   7 months ago    231MB
4.运行容器测试
#运行容器 名为web
[root@localhost ~]# docker run -d --name web -p 80:80  httpd:v0.1 
e5ab6d65910ca588650c4d78c002bb25e9c9d804c03b7dbbee6aba57904e4f0a
[root@localhost ~]# docker ps 
CONTAINER ID   IMAGE        COMMAND                  CREATED             STATUS             PORTS                               NAMES
e5ab6d65910c   httpd:v0.1   "/usr/local/apache/b…"   7 seconds ago       Up 6 seconds       0.0.0.0:80->80/tcp, :::80->80/tcp   web

[root@localhost ~]# docker inspect web  | grep "IPAddress"  //查看容器详细信息 过滤出ip
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.3",
                    "IPAddress": "172.17.0.3",
[root@localhost ~]# curl 172.17.0.3  //访问此ip

It works!

本机也可以访问到默认页面

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/840746.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号