锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

在docker容器编译安装apache

时间:2022-08-24 03:00:01 16b6荷重传感器

编译安装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
<html><body><h1>It works!</h1></body></html>
[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

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章