nginx+php的新基础镜像制作全过程

 更新时间:2024年03月24日 10:18:37   作者:ayzen1988  
这篇文章主要介绍了基于alpine基础镜像,构建含nginx、php服务的新基础镜像的过程,文中通过代码示例和图文结合的方式介绍的非常详细,具有一定的参考价值,需要的朋友可以参考下

前言

服务器需要提前安装好docker;构建的新镜像用于快速部署新项目;

一、运行alpine容器

通过如下命令查找镜像

docker search alpine

如下图所示,就是命令返回的结果,OFFICIAL有[OK]的标识的是docker官方制作的镜像

我们通过如下命令拉取镜像

docker pull alpine

接着我们通过如下命令启动一个alpine容器

docker run -it alpine /bin/sh

二、安装nginx

1、安装pcre执行如下命令,分别为下载源码、解压、进入相应目录、安装

cd /root
wget http://downloads.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz
tar -xvf pcre-8.45.tar.gz
cd pcre-8.45
./configure
make && make install

2、安装nginx执行如下命令,分别为下载源码、解压、进入相应目录、安装

cd /root
wget https://nginx.org/download/nginx-1.24.0.tar.gz
tar -xvf nginx-1.24.0.tar.gz
cd nginx-1.24.0
./configure --prefix=/usr/local/nginx --with-pcre=/root/pcre-8.45
make && make install

3、安装成功之后验证下nginx是否可以正常执行,执行如下命令

/usr/local/nginx/sbin/nginx -t

一切正常会返回如下内容

至此nginx就已经安装完成了,剩下只是配置问题;接下来就是如何安装php?

三、安装php

1、因为alpine镜像使用的是apk包管理,我们需要更换国内源地址,执行如下命令更好为阿里云地址

vi /etc/apk/repositories
https://mirrors.aliyun.com/alpine/v3.15/main
https://mirrors.aliyun.com/alpine/v3.15/community

2、安装相关依赖,执行如下命令

sudo apk update
sudo apk add --no-cache gcc g++ make cmake pkgconf sqlite-dev libxml2-dev openssl openssl-dev libcurl curl-dev oniguruma-dev

3、安装php执行如下命令,分别为下载源码、解压、进入相应目录、安装

cd /root
wget https://www.php.net/distributions/php-8.3.3.tar.gz
tar -xvf php-8.3.3.tar.gz
cd php-8.3.3 || exit
./configure --prefix=/usr/local/php \
  --with-openssl \
  --with-curl \
  --with-zlib \
  --with-mysqli \
  --with-pdo-mysql \
  --enable-cli \
  --enable-fpm \
  --enable-xml \
  --enable-mbstring
make && make install

4、安装成功之后验证下php是否可以正常执行,执行如下命令

/usr/local/php/bin/php -v

一切正常会返回如下内容

5、验证php-fpm是否可以正常执行,执行如下命令

/usr/local/php/sbin/php-fpm -t

一切正常会返回如下内容

至此php就已安装完成,剩下的就是相关的配置了。

四、删除相关依赖

为什么要删除相关依赖?主要是减轻后续生成镜像时候的大小。

执行如下命令删除

sudo apk del gcc g++ make cmake pkgconf libxml2-dev openssl openssl-dev libcurl curl-dev

五、默认脚本

添加默认脚本,用于启动php-fpm、nginx;

执行如下命令

vi /start.sh
 
#!/bin/sh
/usr/local/php/sbin/php-fpm
/usr/local/nginx/sbin/nginx -g "daemon off;"

六、构建新基础镜像

在宿主机执行如下命令,根据之前的容器构建成镜像

docker commit -m"nginx-php8.3.3" 26dfff78bfa1 ayzen/nginx-php8.3.3

-m:提交的描述信息

26dfff78bfa1:第一步运行时的容器id

ayzen/nginx-php8.3.3:要创建的目标镜像名,未带版本号默认为latest

七、验证新镜像

在宿主机执行如下命令,使用新镜像运行一个容器

docker run -itd -p 8083:80 --name test ayzen/nginx-php8.3.3 /start.sh

验证服务是否有启动,执行如下命令

curl http://127.0.0.1:8083

一切正常会返回如下nginx内容

总结

以上就是nginx+php的新基础镜像制作全过程的详细内容,更多关于nginx php镜像制作的资料请关注脚本之家其它相关文章!

相关文章

  • nginx.conf配置文件结构小结

    nginx.conf配置文件结构小结

    本文主要介绍了nginx.conf配置文件结构小结,nginx.conf主要由events、http、server、location、upstream等块配置项和一些行配置项组成,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • Nginx热部署的实现

    Nginx热部署的实现

    本文主要介绍了Nginx热部署的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Nginx日志统计分析的常用命令总结

    Nginx日志统计分析的常用命令总结

    这篇文章主要给大家总结了关于Nginx日志统计分析的一些常用命令,其中包括IP相关统计、页面访问统计、性能分析、蜘蛛抓取统计、TCP连接统计等相关命令的总结,相信对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-07-07
  • Nginx服务器中的模块编写及相关内核源码初探

    Nginx服务器中的模块编写及相关内核源码初探

    这篇文章主要介绍了Nginx服务器中的模块编写及相关源码初探,文中以一个简单的Hello world模块的编写来深入分析Nginx内核所用到的基础函数,需要的朋友可以参考下
    2015-12-12
  • Nginx启用GZIP压缩网页传输方法(推荐)

    Nginx启用GZIP压缩网页传输方法(推荐)

    Gzip压缩我很早已经就启用了,不过从未与大家分享过。今天小编给大家分享Nginx启用GZIP压缩网页传输方法,需要的朋友参考下吧
    2017-01-01
  • 在Ubuntu20.04上安装Kubernetes集群

    在Ubuntu20.04上安装Kubernetes集群

    容器化为开发人员提供了很大的灵活性,最常用的容器化应用程序之一是 Docker,在容器上部署服务的主要原因之一是它们灵活、轻量级并且在部署在数百台机器上时易于扩展,但是,谁来管理所有这些容器?这就是 Kubernetes 发挥作用的地方
    2023-12-12
  • Nginx中配置防盗链的方法实现

    Nginx中配置防盗链的方法实现

    在数字化时代,保护网站内容免受盗链至关重要,Nginx防盗链通过检查请求头Referer字段来拒绝非法来源请求,本文就来详细的介绍一下,感兴趣的可以了解一下
    2024-10-10
  • Nginx出现404 Not Found nginx/1.23.4的完美解决方案

    Nginx出现404 Not Found nginx/1.23.4的完美解决方案

    在Nginx配置过程中,404 Not Found错误是一个常见问题,本文将详细解析Nginx 404 Not Found的原因及解决方案,确保您能够轻松解决这一问题,需要的小伙伴跟着小编一起来学习学习吧
    2024-07-07
  • Nginx反向代理学习实例教程

    Nginx反向代理学习实例教程

    nginx作为web服务器一个重要的功能就是反向代理,当然你也可以使用nginx配置正向代理,这篇文章主要给大家介绍了关于Nginx反向代理的相关资料,需要的朋友可以参考下
    2021-10-10
  • Nginx Location指令URI匹配规则详解小结

    Nginx Location指令URI匹配规则详解小结

    这篇文章主要介绍了Nginx Location指令URI匹配规则详解小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04

最新评论