1:基础容器编译部署apache

1.1:pull一个ubuntu 16.04的镜像

sudo docker pull ubuntu:16.04

1.2:运行容器  

sudo docker run -d --name ubuntu -p 80:80 ubuntu:16.04

1.3:安装ubuntu依赖项

apt update

apt-get install vim

apt-get install net-tools

apt-get install iputils-ping

apt-get install openssh-server

apt-get install openssh-client

apt-get install lrzsz

apt-get install gcc

apt-get install libpcre3 libpcre3-dev

apt-get install make

apt-get install openssl libssl-dev

apt-get install libxml2 libxml2-dev

apt-get install zip unzip

apt-get install libexpat1-dev

apt-get install libnghttp2-dev

1.4:创建安装目录

mkdir /etc/apache2

mkdir /etc/apache2/src

cd /etc/apache2/src

1.5:下载源码并解压

如果路径失效,需要去官网下载相应的安装包

wget http://archive.apache.org/dist/apr/apr-1.5.2.tar.gz

wget http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.gz

wget http://apache.mirrors.lucidnetworks.net//httpd/httpd-2.4.27.tar.gz

wget http://cn2.php.net/distributions/php-7.1.8.tar.gz

tar -xvf apr-1.5.2.tar.gz

tar -xvf apr-util-1.5.4.tar.gz

tar -xvf httpd-2.4.27.tar.gz

tar -xvf php-7.1.8.tar.gz

mv -f apr-1.5.2 httpd-2.4.27/srclib/apr

mv -f apr-util-1.5.4 httpd-2.4.27/srclib/apr-util

1.6:安装依赖包zlib1g,zlib1g.dev

直接安装

sudo apt-get install libpcre3 libpcre3-dev

编译安装

http://jaist.dl.sourceforge.net/project/pcre/pcre/ 下载

得到文件: pcre-8.32.tar.gz

解压:tar -zxvf pcre-8.32.tar.gz

编译:

cd /home/tnuser/hunter/installers/pcre-8.32

/configure --prefix=/home/tnuser/pcre/

1.7:安装依赖包openssl和openssl-devel

直接安装

apt-get install openssl openssl-devel

下载源码编译安装

cd /etc/apache2/src

wget https://www.openssl.org/source/openssl-1.0.2h.tar.gz

tar zxf openssl-1.0.2h.tar.gz

cd openssl-1.0.2h

./config shared zlib

如果提示 because of configuration changes, you MUST do the following before*** building:

则需要在build之前做make depend

make depend

make

make install

mv /usr/bin/openssl /usr/bin/openssl.bak

mv /usr/include/openssl /usr/include/openssl.bak

ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl

ln -s /usr/local/ssl/include/openssl /usr/include/openssl

echo “/usr/local/ssl/lib” >> /etc/ld.so.conf

ldconfig –v

检测安装是否成功

openssl version –a

1.8:编译apache

openssl version -a

mkdir server_root

cd src/httpd-2.4.27 ./configure --prefix=/etc/apache2/server_root --with-included-apr --with-mpm=worker --enable-so --enable-nonportable-atomics=yes --enable-ssl --enable-include --enable-cgi --enable-expires --enable-status --enable-info --enable-rewrite --enable-speling

make

make install

mkdir /etc/apache2/php7

cd /etc/apache2/src/php-7.1.8

./configure --with-apxs2=/etc/apache2/server_root/bin/apxs --prefix=/etc/apache2/php7

make

make test

make install

修改httpd.conf文件

vim /etc/apache2/server_root/conf/httpd.conf

在httpd.conf文件中添加:

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

去掉httpd.conf里ServerName前面的注释:

重启apache服务

cd /etc/apache2/server_root/bin

./apachectl start

1.9:容器打包

2:配置server-status 监控apache

2.1:server-status简介

server-status是Apache查看状态的一个功能模块,在Apache 1.3.2及以后的版本提供

2.2:打开server-status

vi /etc/apache2/server_root/conf/httpd.conf

去掉LoadModule status_module modules/mod_status.so的注释

修改Include 路径 为 /etc/apache2/server_root/conf/extra/httpd-info.conf

修改配置如下

vi /etc/apache2/server_root/conf/extra/httpd-info.conf

<Location /server-status>

SetHandler server-status

Order deny,allow

Allow from all

Allow from 10.20.7.15

</Location>

去掉ExtendedStatus On 注释

vi /etc/apache2/src/httpd-2.4.33

./configure --enable-module=so --enable-info

重启apache

cd /etc/apache2/server_root/bin

./apachectl restart

3:镜像包部署apache

3.1:拉取镜像

Docker pull registry.cn-hangzhou.aliyuncs.com/zhufc/apache-status:zhu

3.2:映射80端口

docker run -d --name apache -p 80:80 registry.cn-hangzhou.aliyuncs.com/zhufc/apache-status:zhu

3.3:进入容器启动apache

docker exec -it da6a434c99e6 bash

cd /etc/apache2/server_root/bin

./apachectl start

3.4:容器后台运行

Ctrl+alt+q+p

3.4:容器后台运行

Ctrl+alt+q+p

4:页面验证apache监控

http://10.20.7.15/server-status

http://10.20.7.15/server-status/phpmyadmin

容器化的Apache服务并监控的更多相关文章

  1. 容器化VS微服务

    1 微服务 1.1 思想 开发人员自己测试.部署和运维自己编写的代码,即自己负责构建生命周期的全部. 1.2 Spring Boot 提供服务化的能力,即把容器.服务所需依赖和服务一起打包成一个jar ...

  2. Docker 容器化的 SonarQube 服务在不同主机之间的迁移

    安装 docker-ce // https://docs.docker.com/install/linux/docker-ce/centos/ $ sudo yum remove docker \ d ...

  3. network_node:host解决Docker容器化部署微服务出现的Dobbo通信问题

    在Docker中,有时候出现 ports:   - 20880:20880 Dobbo通信出现问题. 此时应该改成 network_node:host 注释 ports!

  4. 微服务SpringCloud容器化案例

    前言 当我们在使用微服务的时候,那么有一个问题一定会困扰我们,那就是项目的测试和部署.因为在单体应用下,部署项目很简单,直接打包启动就可以了,而对于微服务来说,因为有各个组件的存在所以让测试和部署都变 ...

  5. 《容器化.NET应用架构指南》脑图学习笔记(第一部分)

    一.关于这本官方“圣经” 作为.NET程序员,对于微软官方推动的架构示例总是特别关注,从PetShop到MusicStore再到eShopOnContainers,每一次关注,都会了解到业界最新的架构 ...

  6. 唯品会RPC服务框架与容器化演进--转

    原文地址:http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=405781868&idx=1&sn=cbb10d37e25 ...

  7. zabbix容器化安装及监控docker应用

    一.zabbix agent2 介绍 从Zabbix 4.4之后,官方推出了Zabbix Agent 2,意味着zabbix 不在只是物理机监控的代名词,现在你可以使用Go为Zabbix编写插件,来监 ...

  8. jmx_prometheus_javaagent+prometheus+alertmanager+grafana完成容器化java监控告警(二)

    一.拓扑图 二.收集数据 2.1前期准备 创建共享目录,即为了各节点都创建该目录,有两个文件,做数据共享 /home/target/prom-jvm-demo 1.下载文件 jmx_prometheu ...

  9. .NET微服务 容器化.NET应用架构指南(支持.NET Core2)

    介绍 企业通过使用容器,日益实现成本节约.解决部署问题并改进 DevOps 和生产操作. 通过创建 Azure 容器服务.Azure Service Fabric 等产品,同时与 Docker.Mes ...

随机推荐

  1. Delphi 项目总结

    Delphi 项目总结 随着项目的失败,这些天一直在总结失败的原因,到底是为什么?     一.技术层面         1.少用指针类型,多用类.             虽然指针类型能有效的节约内 ...

  2. myBatis之入门示例

    1. myBatis目录结构: --src ---entity [POJO类] ---mappers [映射类] ----*Mapper.java [方法接口,相当于Dao] ----*Mapper. ...

  3. AngularJs 学习笔记(四)服务

    模型是指$scope上保存的包含瞬时状态数据的JavaScript对象. 服务是一个单例对象,只会被$injector实例化一次,并且是在需要的时候才会被创建,服务提供了把与特定功能相关联的方法集中在 ...

  4. 苹果公司揭秘首批列入 Swift 源代码兼容性开源项目清单

    源代码兼容性是 Swift 未来的目标.为了实现这一目标,(苹果公司的 swift 编译器团队)建立了一个源兼容性测试套件,用于根据 Swift 源代码(逐渐增加)语料库对编译器进行回归测试更改. 添 ...

  5. ImageMagick 使用经验

    from:http://community.itbbs.cn/thread/20402/ 1.如何用ImageMagic水平或垂直拼接图片 因为是分片下载的,现在只能用montage拼接图片列阵,但如 ...

  6. 在WinForm应用程序中快速实现多语言的处理

    在国际化环境下,越来越多的程序需要做多语言版本,以适应各种业务需求的变化.在Winform应用程序中实现多语言也有常规的处理方式处理,不过需要针对每个语言版本,重新修改Winform界面的显示,对一些 ...

  7. SOFA 源码分析 — 链路数据透传

    前言 SOFA-RPC 支持数据链路透传功能,官方解释: 链路数据透传功能支持应用向调用上下文中存放数据,达到整个链路上的应用都可以操作该数据. 使用方式如下,可分别向链路的 request 和 re ...

  8. html块级元素与行内元素

    1.关于行内元素和快元素的说明: 根据CSS规范的规定,每一个网页元素都有一个display属性,用于确定该元素的类型,每一个元素都有默认的display属性值,比如div元素,它的默认display ...

  9. 条件随机场CRF(三) 模型学习与维特比算法解码

    条件随机场CRF(一)从随机场到线性链条件随机场 条件随机场CRF(二) 前向后向算法评估标记序列概率 条件随机场CRF(三) 模型学习与维特比算法解码 在CRF系列的前两篇,我们总结了CRF的模型基 ...

  10. Oracle12c中分区(Partition)新特性之TRUNCATEPARTITION和EXCHANGE PARTITION级联功能

    TRUNCATE [SUB]PARTITION和EXCHANGE [SUB]PARTITION命令如今可以包括CASCADE子句,从而允许参照分区表向下级联这些操作.为确保该选项正常,相关外键也必须包 ...