1 搭建私有镜像仓库1) 拉起镜像仓库

docker run -d \

-v /opt/registry:/var/lib/registry \

-p 5000:5000 \

--restart=always \

--name registry \

registry

2)修改配置仓库是之能够被我们使用

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.com/distributions/php-7.1.5.tar.gz -P /tmp/php

4 编写Dockerfile文件cd /tmp/php

cat Dockerfile

FROM centos:7

MAINTAINER swift

RUN 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.5

EXPOSE 9000

CMD ["/etc/init.d/php-fpm","start"]

5 构建php镜像docker build -t 192.168.184.130:5000/lnmp-7-php71:base .

6 查看查看已经构建的镜像并上传到私有仓库(php视频教程)1)查看镜像

# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

192.168.184.130:5000/lnmp-7-php71 base 9c85344d010f 8 minutes ago 1.26GB

2)给镜像打tag

docker tag 192.168.184.130:5000/lnmp-7-php71:base 192.168.184.130:5000/lnmp-7-php71:v3

3)上传到私有仓库

docker push 192.168.184.130:5000/lnmp-7-php71:v3

4)查看镜像仓库

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起来一个php

docker run -d -p 9000:9000 --name php-test 192.168.184.130:5000/lnmp-7-php71:v3

2)查看docker是否运行

# docker ps | grep php-test

5ad6cbbaf728 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-test

3)查看端口

# ss -anlptu | grep 9000

tcp LISTEN 0 128 :::9000 :::* users:(("docker-proxy",pid=7340,fd=4))

4)查看日志

# docker logs php-test -f

Starting php-fpm done

8 添加redis扩展1)创建php-redisDocker文件目录

#mkdir redis

2) 以php-test 192.168.184.130:5000/lnmp-7-php71:v3为基础镜像添加redis扩展

# cat Dockerfile

FROM 192.168.184.130:5000/lnmp-7-php71:v3

MAINTAINER swift

RUN 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:redisv2

5)上传到私有仓库

#docker push 192.168.184.130:5000/lnmp-7-php71:redisv2

6)创建php.ini配置文件

#cat php.ini

extension=redis.so

7)创建测试容器验证

#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:redisv2

8)查看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,Dockerfile构建PHP镜像相关推荐

  1. 使用Dockerfile为SpringBoot应用构建Docker镜像

    使用Dockerfile为SpringBoot应用构建Docker镜像 原创: 梦想de星空 macrozheng 6月17日 上次写过一篇使用Maven插件构建Docker镜像 ,讲述了通过dock ...

  2. 通过 Dockerfile 搭建标注工具 brat 的镜像

    通过 Dockerfile 搭建 brat 的镜像 资源将会在项目 gitee 链接 开放. brat docker 上传 dockerhub 还没做. tar 包 # 其实本来可以在 Dockerf ...

  3. 【Docker实战之入门】Dockerfile详细分析:构建docker镜像(4)构建动态网站WordPress...

    代码文件 [root@Optimus /]# cd docker-training/ [root@Optimus docker-training]# ls centos7 mysql php-fpm ...

  4. docker 运行jar exit_使用Dockerfile为SpringBoot应用构建Docker镜像

    上次写过一篇使用Maven插件构建Docker镜像 ,讲述了通过docker-maven-plugin来构建docker镜像的方式,此种方式需要依赖自建的Registry镜像仓库.本文将讲述另一种方式 ...

  5. Docker最全总结,DockerFile,Docker编排容器,Docker镜像,Docker-compose构建

    文章目录 Docker 简介 为什么使用docker: Docker引擎: Docker系统镜像: Docker容器: Docker仓库: ubuntu安装docker: ubuntu脚本自动安装: ...

  6. Dockerfile(Dockerfile的详细使用、通过Dockerfile构建apache镜像)

    文章目录 1 Dockerfile介绍 2 基本结构 2.1 Dockerfile分为四部分 3 Dockerfile 基础知识 4 Dockerfile常用指令 4.1 FROM 4.2 LABEL ...

  7. dockerfile详解-dockerfile构建过程解析,dockerfile体系结构保留字解析,案例解析

    Dockerfile详解 1.定义:Dockerfile是用来构建Docker镜像的构建文件,是一系列命令和参数构成的脚本 2.步骤: --手动编写一个dockerfile文件,必须要要符合规范 -- ...

  8. 如何在构建docker镜像时执行SonarQube扫描.NET Core应用

    前言 SonarQube是一款静态代码质量分析工具,它常用于检测代码中的Bug.漏洞和代码异味,并且能够集成在IDE.Jenkins.Git等服务中,方便随时查看代码质量分析报告. 一般情况下,我们在 ...

  9. docker构建dm8镜像

    dm8 docker镜像制作 一.docker简介 Docker是一个容器运行的管理引擎,类似vmware运行虚拟机,把应用程序和所需配置文件打包形成一个镜像文件,通过镜像文件来创建运行容器,类似于一 ...

最新文章

  1. Cloudera Manager 4.6 安装部署hadoop CDH集群
  2. nginx 允许跨域_细谈跨域请求的桥梁
  3. (一)操作系统基本概念(任哲版嵌入ucos和linux笔记)
  4. 设计模式-适配器模式(Adapter)
  5. 送给创业的朋友:落入坑洞的猎人
  6. 24小时改变你的人生【转】
  7. php开发工具PhpStorm新版本V2022.1 新增功能亮点介绍
  8. 吴恩达机器学习(十二)—— 机器学习系统的设计
  9. UI设计中面性图标设计总结
  10. CSDN20181218博客黑板报
  11. 人工神经网络及其应用,人工神经网络的实现
  12. Macy‘s Thanksgiving Day Parade
  13. 单细胞转录组分析R包安装
  14. 2021年最近超火的外卖cps小程序
  15. 模式识别知识结构图(思维导图)
  16. 黄浩老师cpp平时作业(五)圆周率计算一、二(第二道即pi的近似计算)
  17. Vue商城——详情页功能
  18. excel自动筛选_在Excel自动筛选器中隐藏箭头
  19. 「智能企业搜索」:为什么知识图和NLP可以提供所有正确答案
  20. 今天分享点纯干货,你绝对想不到……

热门文章

  1. 基于android的五子棋游戏的设计——毕业论文.doc,基于Android的五子棋游戏的设计——毕业论文.doc.doc...
  2. CAD看图软件如何切换三维视图?
  3. 蒸烤箱一体机好还是分开好(解读蒸烤箱一体机好处和坏处)
  4. 多渠道打包方案,其实很有玄机
  5. EM算法(一)--------------------最大似然估计
  6. a:link{ 超链接 }样式在浏览器中颜色没有变化的原因?
  7. STM32读写W25Q
  8. 单细胞基础分析 对细胞按照基因marker进行分型(ACC脑区)
  9. 【程序源代码】刷脸支付系统、小程序
  10. 2020年12月RT-Thread社区简报