容器编译安装apache制作成镜像

准备工作

#配置阿里云的源
#配置阿里云源
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
[root@localhost yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

#把和阿里云相关的删了
[root@localhost 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 yum.repos.d]# dnf clean all

#建立缓存
[root@localhost ~]# dnf makecache
docker安装
#下载wget和vim命令
[root@localhost ~]# dnf -y install wget vim

#建立缓存
[root@localhost ~]# dnf makecache

#安装docker
[root@localhost ~]# dnf -y install docker-ce

#设置开机自启,并立马启动
[root@localhost ~]# systemctl enable --now docker

#查看状态
[root@localhost ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled;>
   Active: active (running) since Sun 2022-04-24 19:28:53 CST; 27s >
     Docs: https://docs.docker.com
配置Docker加速

docker-ce的配置文件是/etc/docker/daemon.json,此文件默认不存在,需要我们手动创建并进行配置,而docker的加速就是通过配置此文件来实现的。

docker的加速有多种方式:

  • docker cn

  • 中国科技大学加速器

  • 阿里云加速器(需要通过阿里云开发者平台注册帐号,免费使用个人私有的加速器)

    #配置阿里云加速
#往里面写入这一行
[root@localhost ~]# vi /etc/docker/daemon.json
[root@localhost ~]# cat /etc/docker/daemon.json
{
  "registry-mirrors": ["https://1izcbhll.mirror.aliyuncs.com"]
}

#重新加载程序
[root@localhost docker]# systemctl daemon-reload

#重启
[root@localhost docker]# systemctl restart docker
下载Apr和apr-util、httpd包
#下载和安装Apr和apr-util
[root@localhost ~]# wget https://downloads.apache.org/apr/apr-1.7.0.tar.gz  
#下载apr-util
[root@localhost ~]# wget https://downloads.apache.org/apr/apr-util-1.6.1.tar.gz 
#下载httpd
[root@localhost ~]# wget https://downloads.apache.org/httpd/httpd-2.4.53.tar.gz

拉最新的CentOS-latest镜像
#拉取一个最新版的centos镜像
[root@localhost ~]# docker pull centos

#查看所有镜像
[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
centos       latest    5d0da3dc9764   7 months ago   231MB

#启动容器
[root@localhost ~]# docker run -it --name c2 centos /bin/bash
[root@b991bfe97fcb /]#

#设置ls别名
[root@2e5829d26ded /]# alias ls='ls --color'

#将源码包传到centos容器内
[root@localhost ~]# mkdir sofware
[root@localhost ~]# mv *.gz sofware/
[root@localhost ~]# docker cp sofware c1:/usr/src/

#去容器的/usr/src/目录看它在不在
[root@b991bfe97fcb /]# ls /usr/src/
debug  kernels	sofware
[root@b991bfe97fcb /]# ls /usr/src/sofware/
apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.53.tar.gz
[root@b991bfe97fcb /]# 

#进到sofware目录里解压
[root@b991bfe97fcb /]# cd /usr/src/sofware/
[root@b991bfe97fcb sofware]#  tar xf apr-1.7.0.tar.gz 
[root@b991bfe97fcb sofware]# tar xf apr-util-1.6.1.tar.gz 
[root@b991bfe97fcb sofware]# tar xf  httpd-2.4.53.tar.gz 

[root@b991bfe97fcb sofware]#   cd apr-1.7.0
[root@b991bfe97fcb apr-1.7.0]# vi configure
       # $RM "$cfgfile"        //将此行加上注释,或者删除此行
       
#需要创建一个apache的系统用户
[root@b991bfe97fcb ~]#  useradd -r -M -s /sbin/nologin apache         
#安装依赖包
[root@b991bfe97fcb ~]#  dnf -y install openssl-devel pcre-devel expat-devel libtool make vim wget gcc gcc-c++

#设置centos8容器的源
#把系统自带的源删了,配置阿里源
[root@b991bfe97fcb ~]# cd /etc/yum.repos.d/
[root@b991bfe97fcb 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@b991bfe97fcb yum.repos.d]# rm -rf *


#配置阿里云的源
[root@b991bfe97fcb yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

#把和阿里云相关的删了
[root@b991bfe97fcb yum.repos.d]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo

#清除缓存
[root@b991bfe97fcb yum.repos.d]# dnf clean all
#建立缓存
[root@b991bfe97fcb yum.repos.d]# dnf makecache

#在容器里编译Apr
//第一步 ./configure
[root@b991bfe97fcb apr-1.7.0]#   ./configure --prefix=/usr/local/apr

//第二步 make
[root@b991bfe97fcb apr-1.7.0]# nproc 
2
[root@b991bfe97fcb apr-1.7.0]#  make -j 2

//第三步 make install
[root@b991bfe97fcb apr-1.7.0]# make install
#在容器里编译apr-util
//第一步 ./configure
[root@b991bfe97fcb apr-util-1.6.1]#  ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/

//第二步 make
[root@b991bfe97fcb apr-util-1.6.1]#  make -j 2

//第三步 make install
[root@b991bfe97fcb apr-util-1.6.1]# make install
//第一步 ./configure
[root@b991bfe97fcb 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

//第二步 make
[root@b991bfe97fcb httpd-2.4.53]# make -j 2

//第三步 make install
[root@b991bfe97fcb httpd-2.4.53]# make install

优化容器
#因为已经安装了所以源码包可以删除
[root@b991bfe97fcb /]# ls /usr/src/
debug  kernels	sofware
[root@b991bfe97fcb src]# rm -rf sofware
debug  kernels	sofware

 #卸载载编译工具
[root@b991bfe97fcb ~]#  dnf -y remove gcc make gcc gcc-c++ 


制作镜像
[root@localhost ~]# docker commit -a 'agan <@9639.com>' -c 'CMD ["/usr/local/apache/bin/httpd","-D","FOREGROUND"]' -p c1 httpd:v0.2
sha256:a7d01b8d420c0b387fa9f98e68d1f2be2421dfa0568b98ffa0f15aa849f63914
运行容器测试
#运行容器 名为web
[root@localhost ~]# docker run -d --name web -p 80:80  httpd:v0.2
ab06d7355e5a890cf5e1671b820c42545333868e77c6c105c0b648019f27a118

[root@localhost ~]# docker ps
CONTAINER ID   IMAGE        COMMAND                  CREATED          STATUS          PORTS                               NAMES
ab06d7355e5a   httpd:v0.2   "/usr/local/apache/b…"   5 minutes ago    Up 2 minutes    0.0.0.0:80->80/tcp, :::80->80/tcp   web
b991bfe97fcb   centos       "/bin/bash"              47 minutes ago   Up 47 minutes                                       c2
2e5829d26ded   centos       "/bin/bash"              7 hours ago      Up 7 hours                                          c1

ip 访问

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值