Dockerfile中怎么构建一个PHP镜像
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章将为大家详细讲解有关Dockerfile中怎么构建一个PHP镜像,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1 搭建私有镜像仓库1) 拉起镜
千家信息网最后更新 2025年12月03日Dockerfile中怎么构建一个PHP镜像
这篇文章将为大家详细讲解有关Dockerfile中怎么构建一个PHP镜像,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
1 搭建私有镜像仓库
1) 拉起镜像仓库docker run -d \-v /opt/registry:/var/lib/registry \-p 5000:5000 \--restart=always \--name registry \registry2)修改配置仓库是之能够被我们使用vi /etc/docker/daemon.json{"registry-mirrors": ["http://04be47cf.m.daocloud.io"],"insecure-registries":["192.168.184.130:5000"]}systemctl daemon-reload systemctl restart docker 3)测试仓库是否可用curl http://192.168.184.130:5000/v2/_catalog{"repositories":[]} 说明成功2 创建镜像构建目录
mkdir /tmp/php
3 下载php软件包
wget http://cn2.php.net/distributions/php-7.1.5.tar.gz -P /tmp/php
4 编写Dockerfile文件
cd /tmp/phpcat Dockerfile FROM centos:7MAINTAINER swiftRUN yum install -y install epel-release && \ yum -y install git wget lrzsz vim libxml2 libxml2-devel openssl openssl-devel curl curl-devel libjpeg-turbo libjpeg-turbo-devel libpng-devel libpng freetype-devel freetype icu libicu-devel libicu libmcrypt libmcrypt-devel libxslt libxslt-devel php-mysql && \ yum -y groupinstall "Development Tools" && \ yum provides "*/applydeltarpm" && \ yum install deltarpm -y && \ yum clean all && \ groupadd www && \ useradd -g www www ADD php-7.1.5.tar.gz /usr/local/src/RUN cd /usr/local/src/php-7.1.5 && \ ./configure --prefix=/usr/local/php71 \ --with-config-file-path=/usr/local/php71/etc \ --with-config-file-scan-dir=/usr/local/php71/conf.d \ --enable-fpm --with-fpm-user=www \ --with-fpm-group=www \ --with-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-iconv-dir \ --with-freetype-dir=/usr/local/freetype \ --with-jpeg-dir \ --with-png-dir \ --with-zlib \ --with-libxml-dir=/usr \ --enable-xml \ --disable-rpath \ --enable-bcmath \ --enable-shmop \ --enable-sysvsem \ --enable-inline-optimization \ --with-curl \ --enable-mbregex \ --enable-mbstring \ --with-mcrypt \ --enable-ftp \ --with-gd \ --enable-gd-native-ttf \ --with-openssl \ --with-mhash \ --enable-pcntl \ --enable-sockets \ --with-xmlrpc \ --enable-zip \ --enable-soap \ --with-gettext \ --disable-fileinfo \ --enable-opcache \ --enable-intl \ --with-xsl && \ make -j 4 && make install && \ cp /usr/local/php71/etc/php-fpm.conf.default /usr/local/php71/etc/php-fpm.conf && \ cp ./php.ini-production /usr/local/php71/etc/php.ini && \ cp /usr/local/php71/etc/php-fpm.d/www.conf.default /usr/local/php71/etc/php-fpm.d/www.conf && \ cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm && \ chmod +x /etc/init.d/php-fpm && \ rm -rf /usr/loacl/src/php-7.1.5EXPOSE 9000CMD ["/etc/init.d/php-fpm","start"]
5 构建php镜像
docker build -t 192.168.184.130:5000/lnmp-7-php71:base .
6 查看查看已经构建的镜像并上传到私有仓库
1)查看镜像# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE192.168.184.130:5000/lnmp-7-php71 base 9c85344d010f 8 minutes ago 1.26GB2)给镜像打tagdocker tag 192.168.184.130:5000/lnmp-7-php71:base 192.168.184.130:5000/lnmp-7-php71:v33)上传到私有仓库docker push 192.168.184.130:5000/lnmp-7-php71:v34)查看镜像仓库 curl http://192.168.184.130:5000/v2/lnmp-7-php71/tags/list{"name":"lnmp-7-php71","tags":["base","v3","redis","redisv1","redisv2"]}7 测试使用镜像
1) run起来一个phpdocker run -d -p 9000:9000 --name php-test 192.168.184.130:5000/lnmp-7-php71:v32)查看docker是否运行# docker ps | grep php-test5ad6cbbaf728 192.168.184.130:5000/lnmp-7-php71:v3 "/bin/sh -c '/etc/in…" 5 minutes ago Up 5 minutes 0.0.0.0:9000->9000/tcp, 9006/tcp php-test3)查看端口# ss -anlptu | grep 9000tcp LISTEN 0 128 :::9000 :::* users:(("docker-proxy",pid=7340,fd=4))4)查看日志# docker logs php-test -fStarting php-fpm done8 添加redis扩展
1)创建php-redisDocker文件目录#mkdir redis2) 以php-test 192.168.184.130:5000/lnmp-7-php71:v3为基础镜像添加redis扩展# cat Dockerfile FROM 192.168.184.130:5000/lnmp-7-php71:v3MAINTAINER swiftRUN cd /usr/local/src && \ git clone https://github.com/phpredis/phpredis.git phpredis71 && \ cd phpredis71 && \ /usr/local/php71/bin/phpize && \ ./configure --with-php-config=/usr/local/php71/bin/php-config && \ make && make install 3) build镜像#docker build -t 192.168.184.130:5000/lnmp-7-php71:redis .4)给镜像打tag#docker tag 192.168.184.130:5000/lnmp-7-php71:redis 192.168.184.130:5000/lnmp-7-php71:redisv25)上传到私有仓库#docker push 192.168.184.130:5000/lnmp-7-php71:redisv26)创建php.ini配置文件#cat php.iniextension=redis.so7)创建测试容器验证#docker run -d -p 9006:9000 -v /root/redis/php.ini:/usr/local/php71/etc/php.ini --name php-test-redis 192.168.184.130:5000/lnmp-7-php71:redisv28)查看redis模块是否加载#docker exec -it php-test-redis bash -c '/usr/local/php71/bin/php -m | grep redis'redis##############################################################################################################################kill -USR2 ps -ef | grep php-fpm | grep 'master process' | grep '/usr/local/php71/etc/php-fpm.conf' | awk -F ' ' '{print $2}'###############################################################################################################################关于Dockerfile中怎么构建一个PHP镜像就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
镜像
仓库
私有
文件
测试
内容
文章
更多
目录
知识
篇文章
配置
不错
成功
基础
容器
日志
模块
端口
质量
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全管理的主要功能
数据库备注信息
sql 列出数据库
介绍网络安全的相关知识英语翻译
联通转电信代理服务器
网络安全工程师测试题
仁和广告数据库是5秒
服务器人员工资
网络安全的核
虚拟机数据库查询
网络安全三字经大全
辽宁app软件开发定制费用
网络管理和服务器的关系
天津多功能软件开发参考价格
开天辟地背单词软件开发
穿越火线更新服务器响应失败
微信自研数据库
手机网络与宽带网络安全性
如何管理好服务器
服务器查看告警
我的世界破解服务器密码
sql导入txt表数据库中
远程登录云服务器安全吗
外服游戏连接不上服务器怎么办
数据库原理与技术考试
数据库中求两表并集
数据库建表时对年龄约束
如何快速学习软件开发
黑龙江ftp服务器租用
思科网络技术实训总结报告