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

基于容器编译安装apache制作为镜像

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

基于容器编译安装apache制作为镜像

文章目录
  • 准备工作
    • docker安装
    • docker加速
    • 下载源码包
  • 创建容器
    • 拉取centos8镜像
    • 制作httpd容器
    • 准备工作
    • 编译httpd
    • 设置环境变量
  • 制作镜像
    • 测试

准备工作 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
下载源码包
[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
创建容器 拉取centos8镜像
[root@localhost ~]# docker pull  centos:8
8: Pulling from library/centos
a1d0c7532777: Pull complete 
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for centos:8
docker.io/library/centos:8
[root@localhost ~]# docker images 
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
centos       8         5d0da3dc9764   7 months ago   231MB
制作httpd容器 准备工作
[root@localhost ~]# docker run -it --name httpd centos:8 /bin/bash  //创建容器

[root@b6f0bb67732c /]# cd /etc/yum.repos.d/  //进入yum存放目录
[root@b6f0bb67732c yum.repos.d]# rm -rf *  //删除所有
[root@b6f0bb67732c yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo  //配置阿里源
[root@b6f0bb67732c yum.repos.d]# yum clean all
[root@b6f0bb67732c yum.repos.d]# yum makecache
[root@b6f0bb67732c yum.repos.d]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo


#开启一个新终端,不要退出退出容器会停止
[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE      COMMAND       CREATED         STATUS         PORTS     NAMES
b6f0bb67732c   centos:8   "/bin/bash"   7 minutes ago   Up 7 minutes             httpd

[root@localhost ~]# docker cp apr-1.7.0.tar.gz httpd:/root    //将源码包传到容器内
[root@localhost ~]# docker cp apr-util-1.6.1.tar.gz httpd:/root
[root@localhost ~]# docker cp httpd-2.4.53.tar.gz httpd:/root

#安装依赖包
[root@b6f0bb67732c ~]# yum groups mark install 'Development Tools' -y
[root@b6f0bb67732c ~]# yum -y install openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ make vim
[root@b6f0bb67732c ~]# useradd -r -M -s /sbin/nologin apache
编译httpd
[root@b6f0bb67732c ~]# cd /root/
[root@b6f0bb67732c ~]# ls
anaconda-ks.cfg    apr-1.7.0.tar.gz       httpd-2.4.53.tar.gz
anaconda-post.log  apr-util-1.6.1.tar.gz  original-ks.cfg
[root@b6f0bb67732c ~]# tar xf apr-1.7.0.tar.gz 
[root@b6f0bb67732c ~]# tar xf apr-util-1.6.1.tar.gz 
[root@b6f0bb67732c ~]# tar xf httpd-2.4.53.tar.gz   
[root@b6f0bb67732c ~]# cd apr-1.7.0
[root@b6f0bb67732c apr-1.7.0]# vim configure  //搜索下面这条 注释掉 或者删除
$RM "$cfgfile"
#编译apr
[root@b6f0bb67732c apr-1.7.0]# ./configure --prefix=/usr/local/apr
[root@b6f0bb67732c apr-1.7.0]# make 
[root@b6f0bb67732c apr-1.7.0]# make install

#编译apr-util
[root@b6f0bb67732c apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
[root@b6f0bb67732c apr-util-1.6.1]#  make
[root@b6f0bb67732c apr-util-1.6.1]# make insrall

#编译httpd
[rb6f0bb67732c httpd-2.4.53]# ./configure --prefix=/usr/local/apache --enabl--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
[root@b6f0bb67732c apr-1.7.0]# make 
[root@b6f0bb67732c apr-1.7.0]# make install
设置环境变量
#环境变量
[root@b6f0bb67732c ~]# echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/apache.sh
[root@b6f0bb67732c ~]# source /etc/profile.d/apache.sh
[root@b6f0bb67732c ~]# which httpd         
/usr/local/apache/bin/httpd
[root@b6f0bb67732c ~]# which apachectl
/usr/local/apache/bin/apachectl

[root@b6f0bb67732c ~]# ln -s /usr/local/apache/include/ /usr/include/apache  //软连接

[root@b6f0bb67732c ~]# vim /usr/local/apache/conf/httpd.conf //取消下面注释
#ServerName www.example.com:80

[root@b6f0bb67732c ~]# apachectl start  //启动80端口
[root@b6f0bb67732c ~]# 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:*      

#设置httpd服务的启动脚本
[root@b6f0bb67732c ~]# vi start.sh   
[root@b6f0bb67732c ~]# cat start.sh 
#!/bin/sh

/usr/local/apache/bin/httpd 
/bin/bash
[root@b6f0bb67732c ~]# chmod a+x start.sh
制作镜像
[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE            COMMAND       CREATED             STATUS                        PORTS                               NAMES
b6f0bb67732c   centos:8         "/bin/bash"   About an hour ago   Exited (127) 14 minutes ago                    
[root@localhost ~]# docker commit -p -c 'CMD ["/bin/bash","/start.sh"]' b6f0bb67732c zsh/httpd:v0.1
sha256:0ecd38ec7d3f0abedfca1a02fa5a2264820ad777fa82cd94e52033aa843eb2ab
[root@localhost ~]# docker images 
REPOSITORY   TAG       IMAGE ID       CREATED              SIZE
zsh/httpd    v0.1      0ecd38ec7d3f   42 seconds ago       743MB
centos       8         5d0da3dc9764   7 months ago         231MB

测试
#使用镜像 制作新的容器test
[root@localhost ~]# docker images 
REPOSITORY   TAG       IMAGE ID       CREATED              SIZE
zsh/httpd    v0.1      0ecd38ec7d3f   42 seconds ago       743MB
centos       8         5d0da3dc9764   7 months ago         231MB
[root@localhost ~]# docker run -dit -p 80:80 --name test zsh/httpd:v0.1 /bin/bash  
c4695964d6105d75d8c81f1b451b0b9f735f53de7f7a66d5a065cfcdbce6c473
#进入容器
[root@localhost ~]# docker exec -it test /bin/bash

访问ip可以看到默认页面

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

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

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