首先你环境要安装好docker

1 获取centos镜像。

docker search centos

选取第一个官方镜像。

docker pull  docker.io/centos

新建镜像挂载目录,放入php56 nginx 以及php的redis扩展源码。

2 启动镜像。

 docker run -v /root/php56:/root/php56 --name centos-php56-nginx docker.io/centos tailf /etc/hosts

启动后终端会挂起,我们再开一个终端,查看镜像启动情况。

说明镜像启动成功

进入容器:

docker exec -it  centos-php56-nginx  /bin/bash

目录也映射成功。

解压各个源码包,解压zip是发现没有安装unzip

安装unzip

yum install unzip

再次尝试解压,成功。

安装php依赖包

yum install -y autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libpng libpng-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel curl curl-devel gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel readline-devel libxslt-devel expat-devel

进入php源码目录

./configure --prefix=/usr/local/webserver/php/  --localstatedir=/usr/local/var --sysconfdir=/usr/local/webserver/php/ --with-config-file-path=/usr/local/webserver/php/ --with-config-file-scan-dir=/usr/local/webserver/php/etc/ --with-pear=/usr/local/webserver/php/pear --enable-bcmath --enable-calendar --enable-dba --enable-exif --enable-ftp --enable-fpm --enable-intl --enable-mbregex --enable-mbstring --enable-mysqlnd --enable-pcntl --enable-phpdbg --enable-shmop --enable-soap --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm  --enable-zip  --with-curl --with-fpm-user=_www --with-fpm-group=_www --with-freetype-dir=/usr/local/webserver/freetype --with-gd --with-gettext=/usr/local/webserver/gettext  --with-jpeg-dir=/usr/local/webserver/jpeg    --with-mcrypt --with-mhash --with-mysqli=mysqlnd --with-mysql=mysqlnd  --with-openssl  --with-pdo-mysql=mysqlnd  --with-pic --with-png-dir=/usr/local/webserver/libpng  --with-xmlrpc

报错 configure: error: no acceptable C compiler found in $PATH

yum install gcc

报错

configure: error: Cannot find OpenSSL's <evp.h>

yum install openssl openssl-devel libmcrypt

报错

configure: error: Unable to detect ICU prefix or no failed. Please verify ICU install prefix and make sure icu-config works.

yum install -y libicu-devel

报错

configure: error: C++ preprocessor "/lib/cpp" fails sanity check

yum -y install gcc+ gcc-c++

报错

configure: error: mcrypt.h not found. Please reinstall libmcrypt.

https://www.cnblogs.com/achengmu/p/9312019.html

指定,mcrypt 目录

./configure --prefix=/usr/local/webserver/php/  --localstatedir=/usr/local/var --sysconfdir=/usr/local/webserver/php/ --with-config-file-path=/usr/local/webserver/php/ --with-config-file-scan-dir=/usr/local/webserver/php/etc/ --with-pear=/usr/local/webserver/php/pear --enable-bcmath --enable-calendar --enable-dba --enable-exif --enable-ftp --enable-fpm --enable-intl --enable-mbregex --enable-mbstring --enable-mysqlnd --enable-pcntl --enable-phpdbg --enable-shmop --enable-soap --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm  --enable-zip  --with-curl --with-fpm-user=_www --with-fpm-group=_www --with-freetype-dir=/usr/local/webserver/freetype --with-gd --with-gettext=/usr/local/webserver/gettext  --with-jpeg-dir=/usr/local/webserver/jpeg    --with-mcrypt=/usr/local/libmcrypt --with-mhash --with-mysqli=mysqlnd --with-mysql=mysqlnd  --with-openssl  --with-pdo-mysql=mysqlnd  --with-pic --with-png-dir=/usr/local/webserver/libpng  --with-xmlrpc

通过

make && make install

安装PHP redis 扩展

 cd /root/php56/phpredis-develop/
/usr/local/webserver/php/bin/phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config

3 安装nginx

进入nginx源码目录

./configure --prefix=/usr/local/webserver/nginx
make && make install

启动

 /usr/local/webserver/nginx/sbin/nginx

制作完成,查看容器id.

docker ps -a

将此容器存储为镜像

docker commit -m 'php5.6.39 phpredis nginx1.14.2' 121e08887e3d centos-php56-nginx:v1.0

启动测试

docker run  -d  centos-php56-nginx:v1.0 tailf /etc/hosts

正式启动时要将php.ini和nginx配置文件映射至容器的 /usr/local/webserver/ 目录中

docker制作cenos+php56+nginx镜像的更多相关文章

  1. [Docker] 制作并运行 Nginx 镜像

    环境 操作系统(cat /etc/redhat-release):CentOS Linux release 7.6.1810 (Core) Docker:18.09.6 文件 Dockerfile F ...

  2. docker实战之通过nginx镜像来部署静态页

    本章我们主要讲解如何通过docker构建一个nginx容器,这里我们以部署一个静态html为素材来进行演示. 首先我们通过[docker search nginx]命令来查找Docker Hub上的n ...

  3. docker安装并修改Nginx镜像

    1.安装nginx镜像,命令:docker pull nginx 2.创建nginx容器,并启动,命令:docker run --name webserver -d -p 192.168.51.227 ...

  4. docker学习之路-nginx镜像(翻译)

    本篇来自https://hub.docker.com/_/nginx/?tab=description 它是docker hub上nginx的官方网站,上面有关于nginx的使用描述等.从这里你可以找 ...

  5. Docker制作私有的基础镜像

    debootstrap是debian/ubuntu下的一个工具,用来构建一套基本的系统(根文件系统).生成的目录符合Linux文件系统标准(FHS),即包含了/boot./etc./bin./usr等 ...

  6. CentOS7上Docker简单安装及nginx部署

    安装 如果原来安装过docker,先把原来的删掉,再安装(如果是首次安装docker忽略第一步,直接在第二步看起) 1.1先查看下已经安装了那些docker yum list installed | ...

  7. docker-ubuntu镜像,nginx镜像

    docker 是将程序与机器隔开,使程序不受环境影响. 安装 sudo apt-get install docker.io ## 好用的一些命令 1.停用全部运行中的容器: docker stop $ ...

  8. docker 使用:创建nginx容器

    在上一节中了解了镜像和容器.对于镜像可以这样的理解,镜像相当于一个光盘,里面刻录了一个系统这个系统已经带有相关的服务了. 容器是通过镜像这个光盘安装的一个操作系统,光盘预加了什么服务,容器就有什么服务 ...

  9. Docker 制作Nginx镜像

    参考文章:https://www.jianshu.com/p/dc4cd0547d1e 镜像的制作方式有两种,一种是下载别人的镜像之后再制作成自己的镜像,一种是从头开始制作自己的镜像 第一种,下载别人 ...

随机推荐

  1. mysql-python安装

    操作系统:ubuntu16.04-gnome 首先要安装mysql数据 sudo apt install mysql-server 我们使用pip进行安装第三方模块 系统python版本为2.7.12 ...

  2. 搭建服务器上的GIT并实现自动同步到站点目录(www)

    https://blog.csdn.net/baidu_30000217/article/details/51327289 前言:当我们想要实现几个小伙伴合作开发同一个项目,或者建立一个资源分享平台的 ...

  3. Python--day25--复习(单继承和多继承的总结)

  4. SpringBoot2.0 使用AOP统一处理Web请求日志(完整版)

    一,加入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  5. git提交时如何忽略一些文件

    起因 在使用git对软件进行版本管理的时候我们总有一些不需要提交到版本库里的文件和文件夹,或者在管理一个实际应用的开源项目的时候,不可以把带有数据库信息的文件上传到开源平台当中,这个时候我们就需要让g ...

  6. linux预备知识

    我们正在接近去看一些实际的模块代码. 但是首先, 我们需要看一些需要出现在你的模块 源码文件中的东西. 内核是一个独特的环境, 它将它的要求强加于要和它接口的代码上. 大部分内核代码包含了许多数量的头 ...

  7. ZR提高失恋测3

    ZR提高失恋测3 题目链接 (感觉这一场比以往的简单了一些) 估分 100 + 40 + 40 得分 100 + 60 + 40 ??? A 首先,我们能够想到一个比较简单的\(n^2\)做法, 枚举 ...

  8. json文件生成

    // import Translate from 'translate-components' /* * 匹配所有汉字RegExp: [\u4e00-\u9fa5] [\u4E00-\u9FA5]|[ ...

  9. "技术框架太多,多的眼花缭乱,如何在众多选择中找到自己的方向?

    "技术框架太多,多的眼花缭乱,如何在众多选择中找到自己的方向?",经常有人这么问我. 咱们从开源项目说起,可以从两个维度来对开源项目进行分类,一方面是编程语言,另一方面是应用领域. ...

  10. codeforces 540E 离散化技巧+线段树/树状数组求逆序对

    传送门:https://codeforces.com/contest/540/problem/E 题意: 有一段无限长的序列,有n次交换,每次将u位置的元素和v位置的元素交换,问n次交换后这个序列的逆 ...