前言
服务器需要提前安装好docker;构建的新镜像用于快速部署新项目;
一、运行alpine容器
通过如下命令查找镜像
1 | docker search alpine |
如下图所示,就是命令返回的结果,OFFICIAL有[OK]的标识的是docker官方制作的镜像
我们通过如下命令拉取镜像
1 | docker pull alpine |
接着我们通过如下命令启动一个alpine容器
1 | docker run -it alpine /bin/sh |
二、安装nginx
1、安装pcre执行如下命令,分别为下载源码、解压、进入相应目录、安装
1 2 3 4 5 6 | 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执行如下命令,分别为下载源码、解压、进入相应目录、安装
1 2 3 4 5 6 | 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是否可以正常执行,执行如下命令
1 | /usr/local/nginx/sbin/nginx -t |
一切正常会返回如下内容
至此nginx就已经安装完成了,剩下只是配置问题;接下来就是如何安装php?
三、安装php
1、因为alpine镜像使用的是apk包管理,我们需要更换国内源地址,执行如下命令更好为阿里云地址
1 2 3 | vi /etc/apk/repositories https: //mirrors .aliyun.com /alpine/v3 .15 /main https: //mirrors .aliyun.com /alpine/v3 .15 /community |
2、安装相关依赖,执行如下命令
1 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执行如下命令,分别为下载源码、解压、进入相应目录、安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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是否可以正常执行,执行如下命令
1 | /usr/local/php/bin/php - v |
一切正常会返回如下内容
5、验证php-fpm是否可以正常执行,执行如下命令
1 | /usr/local/php/sbin/php-fpm -t |
一切正常会返回如下内容
至此php就已安装完成,剩下的就是相关的配置了。
四、删除相关依赖
为什么要删除相关依赖?主要是减轻后续生成镜像时候的大小。
执行如下命令删除
1 | sudo apk del gcc g++ make cmake pkgconf libxml2-dev openssl openssl-dev libcurl curl-dev |
五、默认脚本
添加默认脚本,用于启动php-fpm、nginx;
执行如下命令
1 2 3 4 5 | vi /start .sh #!/bin/sh /usr/local/php/sbin/php-fpm /usr/local/nginx/sbin/nginx -g "daemon off;" |
六、构建新基础镜像
在宿主机执行如下命令,根据之前的容器构建成镜像
1 | docker commit -m "nginx-php8.3.3" 26dfff78bfa1 ayzen /nginx-php8 .3.3 |
-m:提交的描述信息
26dfff78bfa1:第一步运行时的容器id
ayzen/nginx-php8.3.3:要创建的目标镜像名,未带版本号默认为latest
七、验证新镜像
在宿主机执行如下命令,使用新镜像运行一个容器
1 | docker run -itd -p 8083:80 --name test ayzen /nginx-php8 .3.3 /start .sh |
验证服务是否有启动,执行如下命令
1 | curl http: //127 .0.0.1:8083 |
一切正常会返回如下nginx内容
总结
以上就是nginx+php的新基础镜像制作全过程的详细内容,更多关于nginx php镜像制作的资料请关注IT俱乐部其它相关文章!