制作的apache编译安装docker镜像

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

1. 安装docker

[root@localhost ~]# curl -o docker-ce.repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1919  100  1919    0     0  12222      0 --:--:-- --:--:-- --:--:-- 12222
[root@localhost ~]# sed -i 's@https://download.docker.com@https://mirrors.tuna.tsinghua.edu.cn/docker-ce@g' docker-ce.repo
[root@localhost ~]# ls
anaconda-ks.cfg  docker-ce.repo
[root@localhost ~]# mv docker-ce.repo /etc/yum.repos.d/
[root@localhost ~]# dnf -y install docker-ce
Failed to set locale, defaulting to C.UTF-8
······
Complete!

2. 设置开机自启

[root@localhost ~]# systemctl enable --now docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
[root@localhost ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor pres>
   Active: active (running) since Tue 2022-08-10 09:02:13 CST; 6s ago
     Docs: https://docs.docker.com
 Main PID: 24300 (dockerd)
    Tasks: 7
   Memory: 33.7M
   CGroup: /system.slice/docker.service
           └─24300 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/conta>

3. 准备工作

//配置镜像加速器并拉取镜像
[root@localhost ~]# vim /etc/docker/daemon.json
[root@localhost ~]# systemctl restart docker
[root@localhost ~]# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
a1d0c7532777: Pull complete 
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest

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

//配置yum源
[root@0f13b7bbdd54 /]# rm -rf /etc/yum.repos.d/*
[root@0f13b7bbdd54 /]# 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   7148      0 --:--:-- --:--:-- --:--:--  7148
[root@0f13b7bbdd54 /]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo

//安装依赖包
[root@0f13b7bbdd54 /]# dnf -y install openssl-devel pcre-devel expat-devel libtool libxml2-devel gcc gcc-c++ 
······
Complete!

//创建apache系统用户
[root@0f13b7bbdd54 /]# useradd -rMs /sbin/nologin apache

4. 部署apache

  • 安装apr
[root@0f13b7bbdd54 /]# wget http://mirrors.aliyun.com/apache/apr/apr-1.7.0.tar.gz
--2022-08-10 15:17:29--  http://mirrors.aliyun.com/apache/apr/apr-1.7.0.tar.gz
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 119.96.138.217, 119.96.138.211, 58.49.248.229, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|119.96.138.217|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1093896 (1.0M) [application/octet-stream]
Saving to: ‘apr-1.7.0.tar.gz’

apr-1.7.0.tar.gz    100%[===================>]   1.04M  6.73MB/s    in 0.2s    

2022-08-10 15:17:30 (6.73 MB/s) - ‘apr-1.7.0.tar.gz’ saved [1093896/1093896]

[root@0f13b7bbdd54 /]# 
[root@0f13b7bbdd54 /]# tar -xf apr-1.7.0.tar.gz -C /usr/local/src/
[root@0f13b7bbdd54 /]# cd /usr/local/src/apr-1.7.0/
[root@0f13b7bbdd54 apr-1.7.0]# vi configure

$RM "$cfgfile"      //注释或删除此行
[root@0f13b7bbdd54 apr-1.7.0]# ./configure --prefix=/usr/local/apr
[root@0f13b7bbdd54 apr-1.7.0]# make && make install
  • 安装apr-utils
[root@0f13b7bbdd54 apr-1.7.0]# cd
[root@0f13b7bbdd54 ~]# wget https://mirrors.aliyun.com/apache/apr/apr-util-1.6.1.tar.gz
--2022-08-10 15:21:52--  https://mirrors.aliyun.com/apache/apr/apr-util-1.6.1.tar.gz
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 119.96.138.215, 119.96.138.210, 58.49.248.229, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|119.96.138.215|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 554301 (541K) [application/octet-stream]
Saving to: ‘apr-util-1.6.1.tar.gz’

apr-util-1.6.1.tar. 100%[===================>] 541.31K  --.-KB/s    in 0.1s    

2022-08-10 15:21:53 (4.34 MB/s) - ‘apr-util-1.6.1.tar.gz’ saved [554301/554301]
[root@0f13b7bbdd54 ~]# tar -xf apr-util-1.6.1.tar.gz -C /usr/local/src/
[root@0f13b7bbdd54 ~]# cd /usr/local/src/apr-util-1.6.1/
[root@0f13b7bbdd54 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
[root@0f13b7bbdd54 apr-util-1.6.1]# make && make install
  • 安装httpd
[root@0f13b7bbdd54 apr-util-1.6.1]# cd
[root@0f13b7bbdd54 ~]# wget https://mirrors.aliyun.com/apache/httpd/httpd-2.4.54.tar.gz
--2022-08-10 15:23:47--  https://mirrors.aliyun.com/apache/httpd/httpd-2.4.54.tar.gz
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 119.96.138.215, 58.49.248.226, 58.49.248.231, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|119.96.138.215|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9743277 (9.3M) [application/octet-stream]
Saving to: ‘httpd-2.4.54.tar.gz’

httpd-2.4.54.tar.gz 100%[===================>]   9.29M  4.55MB/s    in 2.0s    

2022-08-10 15:23:50 (4.55 MB/s) - ‘httpd-2.4.54.tar.gz’ saved [9743277/9743277]
[root@0f13b7bbdd54 ~]# tar -xf httpd-2.4.54.tar.gz -C /usr/local/src/
[root@0f13b7bbdd54 ~]# cd /usr/local/src/httpd-2.4.54/
[root@0f13b7bbdd54 httpd-2.4.54]# ./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@0f13b7bbdd54 httpd-2.4.54]# make && make install

  • 配置apache并进行验证
//配置环境变量
[root@0f13b7bbdd54 httpd-2.4.54]# cd
[root@0f13b7bbdd54 ~]# echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/apache.sh
[root@0f13b7bbdd54 ~]# source /etc/profile.d/apache.sh

//映射头文件
[root@0f13b7bbdd54 ~]# ln -s /usr/local/apache/include/ /usr/include/apache

//去除提示信息
[root@0f13b7bbdd54 ~]# vi /usr/local/apache/conf/httpd.conf
ServerName www.example.com:80   //将此行取消注释

//启动服务查看状态
[root@0f13b7bbdd54 ~]# httpd
[root@0f13b7bbdd54 ~]# ss -anlt
State    Recv-Q   Send-Q     Local Address:Port     Peer Address:Port  Process  
LISTEN   0        128              0.0.0.0:80            0.0.0.0:*              
[root@0f13b7bbdd54 ~]# 

5. 制作镜像

//另外连接一个终端进行制作
[root@localhost ~]# docker commit -p -c 'CMD ["/usr/local/apache/bin/httpd","-D","FOREGROUND"]' pg1 lishuails/httpd:v0.1
sha256:185cb811ddab28a09a5d8a7dc749e2885640ae365d25a461ac5975f519bc260e
[root@localhost ~]# docker images
REPOSITORY           TAG       IMAGE ID       CREATED         SIZE
lishuails/httpd      v0.1      185cb811ddab   6 seconds ago   729MB
centos               latest    5d0da3dc9764   10 months ago   231MB

[root@localhost ~]# 

6. 启动容器

[root@localhost ~]# docker run -d --name web -p 80:80 -v /root/html/:/usr/local/apache/htdocs lishuails/httpd:v0.1
b152bb5a229fab4179715b025eda60385636403e01c0ce110cf684e6c2e907d4
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE                  COMMAND                  CREATED          STATUS          PORTS                               NAMES
b152bb5a229f   lishuails/httpd:v0.1   "/usr/local/apache/b…"   14 seconds ago   Up 12 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp   web

7. 访问效果

[root@localhost ~]# echo hello world! > html/index.html
[root@localhost ~]# curl 192.168.183.131
hello world!

8. 上传镜像

[root@localhost ~]# docker login
Authenticating with existing credentials...
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
[root@localhost ~]# docker push lishuails/httpd:v0.1
The push refers to repository [docker.io/lishuails/httpd]
2dda0c2d9788: Pushed 
74ddd0ec08fa: Pushed 
v0.1: digest: sha256:8f1c75bd684ebc983a0a028f0c843e56a15a5615d17db36fadeae4f252671ee2 size: 742
[root@localhost ~]# 

镜像名称:lishuails/httpd

版本号:v0.1

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值