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

在docker容器编译安装apache

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

在docker容器编译安装apache

编译安装apache
下载apr,apr-util,httpd

[root@localhost ~]# dnf -y install wget
[root@localhost ~]# wget https://downloads.apache.org/apr/apr-1.7.0.tar.gz
[root@localhost ~]# wget https://downloads.apache.org/apr/apr-util-1.6.1.tar.gz
[root@localhost ~]# wget https://downloads.apache.org/httpd/httpd-2.4.53.tar.gz

创建容器

[root@localhost ~]# docker images   //查看镜像
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
busybox      latest    beae173ccac6   3 months ago   1.24MB
httpd        latest    dabbfbe0c57b   4 months ago   144MB
centos       latest    5d0da3dc9764   7 months ago   231MB
[root@localhost ~]# docker run -it --name c1 centos /bin/bash    //在前台运行所以加了/bin/bash
[root@386a2487e917 /]# ls
bin  etc   lib	  lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr
[root@386a2487e917 /]# alias ls='ls --color'   //设置别名
[root@386a2487e917 /]# ls
bin  etc   lib    lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr

解压

[root@386a2487e917 /]# cd /usr/src
[root@386a2487e917 src]# ls
debug  kernels
[root@localhost ~]# ls                 
anaconda-ks.cfg   apr-util-1.6.1.tar.gz
apr-1.7.0.tar.gz  httpd-2.4.53.tar.gz
[root@localhost ~]# mkdir abc        
[root@localhost ~]# mv *.gz abc/    //把所有gz结尾的文件放到abc目录
[root@localhost ~]# ls
abc  anaconda-ks.cfg
[root@localhost ~]# docker cp abc c1:/usr/src   //把abc目录复制到容器c1里面
[root@386a2487e917 src]# ls
abc  debug  kernels
[root@386a2487e917 src]# ls abc
apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.53.tar.gz
[root@386a2487e917 src]# cd abc         
[root@386a2487e917 abc]# ls
apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.53.tar.gz
[root@386a2487e917 abc]# tar -xf apr-1.7.0.tar.gz 
[root@386a2487e917 abc]# tar -xf apr-util-1.6.1.tar.gz 
[root@386a2487e917 abc]# tar -xf httpd-2.4.53.tar.gz 
[root@386a2487e917 abc]# ls
apr-1.7.0  apr-1.7.0.tar.gz  apr-util-1.6.1  apr-util-1.6.1.tar.gz  httpd-2.4.53  httpd-2.4.53.tar.gz

配置yum源

[root@386a2487e917 ~]# cd /etc/yum.repos.d/
[root@386a2487e917 yum.repos.d]# ls
CentOS-Linux-AppStream.repo
CentOS-Linux-BaseOS.repo
CentOS-Linux-ContinuousRelease.repo
CentOS-Linux-Debuginfo.repo
CentOS-Linux-Devel.repo
CentOS-Linux-Extras.repo
CentOS-Linux-FastTrack.repo
CentOS-Linux-HighAvailability.repo
CentOS-Linux-Media.repo
CentOS-Linux-Plus.repo
CentOS-Linux-PowerTools.repo
CentOS-Linux-Sources.repo
[root@386a2487e917 yum.repos.d]# rm -rf *
[root@386a2487e917 yum.repos.d]# ls
[root@386a2487e917 yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2495  100  2495    0     0   3376      0 --:--:-- --:--:-- --:--:--  3380
[root@386a2487e917 yum.repos.d]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
[root@386a2487e917 ~]# dnf clean all  //清除缓存
[root@386a2487e917 ~]# dnf makecache   //建立缓存

配置apr

[root@386a2487e917 ~]# useradd -r -M -s /sbin/nologin apache   //创建系统用户
[root@386a2487e917 ~]# id apache
uid=998(apache) gid=996(apache) groups=996(apache)
[root@386a2487e917 abc]# cd apr-1.7.0
[root@386a2487e917 apr-1.7.0]# yum -y install make gcc
[root@386a2487e917 apr-1.7.0]# vi configure
  $RM "$cfgfile"   //删除此行
[root@386a2487e917 apr-1.7.0]# ./configure --prefix=/usr/local/apr
[root@386a2487e917 apr-1.7.0]# make 
[root@386a2487e917 apr-1.7.0]# make  install

配置apr-util

[root@386a2487e917 apr-util-1.6.1]# dnf -y install expat-devel

[root@386a2487e917 ~]# cd /usr/src/abc
[root@386a2487e917 abc]# ls
apr-1.7.0  apr-1.7.0.tar.gz  apr-util-1.6.1  apr-util-1.6.1.tar.gz  httpd-2.4.53  httpd-2.4.53.tar.gz
[root@386a2487e917 abc]# cd apr-util-1.6.1
[root@386a2487e917 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@386a2487e917 apr-util-1.6.1]# makae
[root@386a2487e917 apr-util-1.6.1]# makae install

配置httpd

[root@386a2487e917 httpd-2.4.53]# dnf -y install pcre-devel
[root@386a2487e917 httpd-2.4.53]# dnf -y install openssl-devel
[root@386a2487e917 abc]# cd 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=prefork
[root@386a2487e917 httpd-2.4.53]# make
[root@386a2487e917 httpd-2.4.53]# make install
[root@386a2487e917 apache]# cd /
[root@386a2487e917 /]# ls
bin  etc   lib    lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr
[root@386a2487e917 /]# vi aaa.sh
[root@386a2487e917 /]# cat aaa.sh
#!/bin/bash



/usr/local/apache/bin/httpd && sleep 1d
[root@386a2487e917 /]# chmod +x /aaa.sh    //给这个脚本加执行权限
[root@386a2487e917 /]# ./aaa.sh   //运行脚本
[root@localhost ~]# docker inspect c1
...
                 "IPAddress": "172.17.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:02",
                    "DriverOpts": null
                }
            }
        }
    }
]
[root@localhost ~]# curl 172.17.0.2

It works!

[root@localhost ~]# docker commit -a 'yyqx ' -c 'CMD ["/aaa.sh"]' -p c1 yyqxyyds/httpd:w01 //创建镜像 sha256:5e7bb05141d3aa3d941b8a4c525cb9690e900888028e0ad928ff9f277ce846ef [root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE yyqxyyds/httpd w01 5e7bb05141d3 28 seconds ago 616MB busybox latest beae173ccac6 3 months ago 1.24MB httpd latest dabbfbe0c57b 4 months ago 144MB centos latest 5d0da3dc9764 7 months ago 231MB [root@localhost ~]# docker run -d --name web -p 80:80 yyqxyyds/httpd:w01 //创建运行容器 16b6cc06d098325784defe44ec7f35327498294f6bcd9996bde89da288a4a418 [root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 16b6cc06d098 yyqxyyds/httpd:w01 "/aaa.sh" 7 seconds ago Up 6 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp web 386a2487e917 centos "/bin/bash" 2 hours ago Up 2 hours c1


让apache在前台运行

[root@386a2487e917 /]# rm -f aaa.sh   //删除刚刚创建的脚本
[root@386a2487e917 /]# pkill httpd
[root@localhost ~]# docker rm -f web

-D指定要传入配置文件的参数
[root@386a2487e917 /]# /usr/local/apache/bin/httpd -DFOREGROUND
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[root@localhost ~]# curl 172.17.0.2
It works!
[root@localhost ~]# docker commit -a 'yyqx<1@2.com>' -c 'CMD ["/usr/local/apache/bin/httpd","-D","FOREGROUND"]' -p c1 yyqxyyds/httpd:w02
sha256:27f1780ffee7ec73014718ff95fc13be49bb225ef1259e2cf2e53cf62cb91043
[root@localhost ~]# docker run -d --name web -p 80:80 yyqxyyds/httpd:w02
f021163f808737e72a18fa6bc99daccb13581eaffb95d170d355464e6b12701a
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE                COMMAND                  CREATED          STATUS          PORTS                               NAMES
f021163f8087   yyqxyyds/httpd:w02   "/usr/local/apache/b…"   14 seconds ago   Up 12 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp   web
386a2487e917   centos               "/bin/bash"              3 hours ago      Up 3 hours                                          c1

[root@localhost ~]# docker inspect web
...
"Cmd": [
                "/usr/local/apache/bin/httpd",
                "-D",
                "FOREGROUND"
...

优化

[root@386a2487e917 var]# cd cache     //删除缓存
[root@386a2487e917 cache]# ls
bpf  dnf  ldconfig  private
[root@386a2487e917 cache]# rm -rf *
[root@386a2487e917 usr]# cd src/
[root@386a2487e917 src]# ls
abc  debug  kernels
[root@386a2487e917 src]# rm -rf abc
[root@386a2487e917 ~]# dnf -y remove gcc make
[root@localhost ~]# docker commit -a 'yyqx<1@2.com>' -c 'CMD ["/usr/local/apache/bin/httpd","-D","FOREGROUND"]' -p c1 yyqxyyds/httpd:w03sha256:d8ff731dd5cc0fe15586d05546a4c506c7caf7fb96df410c7eecd21f8ba7a466
[root@localhost ~]# docker images
REPOSITORY       TAG       IMAGE ID       CREATED          SIZE
yyqxyyds/httpd   w03       d8ff731dd5cc   5 seconds ago    354MB

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

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

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