docker制作cenos+php56+nginx镜像
首先你环境要安装好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镜像的更多相关文章
- [Docker] 制作并运行 Nginx 镜像
环境 操作系统(cat /etc/redhat-release):CentOS Linux release 7.6.1810 (Core) Docker:18.09.6 文件 Dockerfile F ...
- docker实战之通过nginx镜像来部署静态页
本章我们主要讲解如何通过docker构建一个nginx容器,这里我们以部署一个静态html为素材来进行演示. 首先我们通过[docker search nginx]命令来查找Docker Hub上的n ...
- docker安装并修改Nginx镜像
1.安装nginx镜像,命令:docker pull nginx 2.创建nginx容器,并启动,命令:docker run --name webserver -d -p 192.168.51.227 ...
- docker学习之路-nginx镜像(翻译)
本篇来自https://hub.docker.com/_/nginx/?tab=description 它是docker hub上nginx的官方网站,上面有关于nginx的使用描述等.从这里你可以找 ...
- Docker制作私有的基础镜像
debootstrap是debian/ubuntu下的一个工具,用来构建一套基本的系统(根文件系统).生成的目录符合Linux文件系统标准(FHS),即包含了/boot./etc./bin./usr等 ...
- CentOS7上Docker简单安装及nginx部署
安装 如果原来安装过docker,先把原来的删掉,再安装(如果是首次安装docker忽略第一步,直接在第二步看起) 1.1先查看下已经安装了那些docker yum list installed | ...
- docker-ubuntu镜像,nginx镜像
docker 是将程序与机器隔开,使程序不受环境影响. 安装 sudo apt-get install docker.io ## 好用的一些命令 1.停用全部运行中的容器: docker stop $ ...
- docker 使用:创建nginx容器
在上一节中了解了镜像和容器.对于镜像可以这样的理解,镜像相当于一个光盘,里面刻录了一个系统这个系统已经带有相关的服务了. 容器是通过镜像这个光盘安装的一个操作系统,光盘预加了什么服务,容器就有什么服务 ...
- Docker 制作Nginx镜像
参考文章:https://www.jianshu.com/p/dc4cd0547d1e 镜像的制作方式有两种,一种是下载别人的镜像之后再制作成自己的镜像,一种是从头开始制作自己的镜像 第一种,下载别人 ...
随机推荐
- 2018-8-10-win10-uwp-获得元素绝对坐标
title author date CreateTime categories win10 uwp 获得元素绝对坐标 lindexi 2018-08-10 19:16:51 +0800 2018-2- ...
- H3C 用display interface命令显示接口信息
- JS正则验证两位小数,验证数字最简单正则表达式大全
<h3>输入完按回车后即可验证!</h3> 正整数: <input type="text" size="20" onkeydown ...
- Python--day43--增删改查补充和limit以及order by
增删改查补充: 增: 删和改: 查: 其他: limit:(具有分页的功能) 分页:
- java多异常处理
声明异常时尽可能声明具体异常类型,方便更好的处理; 方法声明几个异常就对应有几个catch块; 若多个catch块中的异常出现继承关系,父类异常catch块放在最后; 在catch语句块使用Excep ...
- H3C IPv6地址配置命令
- P1008 对齐输出
题目描述 读入三个整数,按每个整数占8个字符的宽度,右对齐输出它们. 输入格式 输入的一行包含三个整数 \(a,b,c(1 \le a,b,c \le 10^6)\) . 输出格式 输出一行包含三个整 ...
- HeidiSQL工具导出导入MySQL数据
有时候,为了数据方便导出导入SQL,我们可以借助一定的工具,方便我们队数据库的移植,可以达到事半功倍的效果.在这里,就给大家简单的介绍一款能方便导出或者导入MySQL的数据. ①首先,选择你要导出的数 ...
- 原生js实现继承
在多数语言中继承都很重要.JavaScript是一个基于原型的语言,这意味着对象可以直接从其他对象继承.以下列出几种常见的js继承方式. 原型链继承 function Father(){ this.s ...
- Linux 内核设备属性
sysfs 中的设备入口可有属性. 相关的结构是: struct device_attribute { struct attribute attr; ssize_t (*show)(struct de ...