Docker构建自己的PHP-fpm容器镜像

17 篇文章 0 订阅
7 篇文章 0 订阅

0.最新编辑内容请参考:

Dockerfile基于镜像php:7.2-fpm构建自定义php7.2镜像

https://blog.csdn.net/one312/article/details/105026554

1.创建一个Dockerfile 并写入以下内容:

FROM php:5.6-fpm
RUN     apt-get update \
    #cp -r /etc/apt/sources.list /etc/apt/sources.list.bak \
    #修改软件源
    #
    #&& echo "deb http://mirrors.aliyun.com/debian/ wheezy main non-free contrib" > /etc/apt/sources.list \
    #&& echo "deb http://mirrors.aliyun.com/debian/ wheezy-proposed-updates main non-free contrib" >> /etc/apt/sources.list \
    #&& echo "deb-src http://mirrors.aliyun.com/debian/ wheezy main non-free contrib" >> /etc/apt/sources.list \
    #&& echo "deb-src http://mirrors.aliyun.com/debian/ wheezy-proposed-updates main non-free contrib" >> /etc/apt/sources.list \
    #
    #&& apt-get update \
    #切换目录
    && cd /tmp \
    #安装sudo
    && apt-get install sudo -y \
    #安装vim文本编辑器
    && apt-get install vim -y \
    #安装wget下载工具
    && apt-get install wget -y \
    #安装网络管理工具
    && apt-get install net-tools -y \
    #安装ping
    && apt-get install iputils-ping -y \
    #安装telnet
    && apt-get install telnet -y \
    #安装进程管理命令ps, top, vmstat, w, kill, free, slabtop, and skill
    && apt-get install procps -y \
    #安装C/C++编译包,该软件包,编译c/c++所需要的软件包也都会被安装。
    #该包包含gcc,g++,make等`
    && apt-get install build-essential -y \
    #安装zip依赖 zlib
    && apt-get install zlib1g-dev -y \
    #安装zip
    && bash -c "apt-get install unzip -y;" \
    #安装openssh-server  即sshd
    && apt install -y openssh-server -y \
    #给root用户设置初始密码123456
    && echo root:123456 | chpasswd \
    #安装composer命令
    #下载composer.phar
    && php -r "readfile('https://getcomposer.org/installer');" | php \
    #给composer.phar赋可执行权限
    #将composer.phar复制到/bin/目录下并重命名为composer
    && mv composer.phar /bin/composer \
    #查看composer版本
    #composer -v
    #修改composer镜像源地址为国内地址
    && composer config -g repo.packagist composer https://packagist.phpcomposer.com \
    #安装php扩展
    #下载
    && wget http://qinqinxia.com/zip-1.13.5.tgz \
    #解压
    && tar -zvxf zip-1.13.5.tgz \
    #解压后复制到目录/usr/local/src
    && cp -r zip-1.13.5 /usr/local/src \
    #切换目录到/usr/local/src/zip-1.13.5
    && cd /usr/local/src/zip-1.13.5 \
    #安装php扩展php-zip
    #
    && /usr/local/bin/phpize \
    #
    && ./configure --with-php-config=/usr/local/bin/php-config \
    #
    && make && make install
    # 扩展所在目录:
    #Installing shared extensions:     /usr/local/lib/php/extensions/no-debug-non-zts-20131226/
    #配置
    #cp /usr/local/etc/php/php.ini-development /usr/local/etc/php/php.ini
    #vim /usr/local/etc/php/php.ini
    #然后添加配置项extension=zip.so即可
    #composer安装laravel
    #composer global require laravel/installer

    ############################################################################

    #其中php的官方下载地址 太慢,所以dockerfile中的用的是我自己的站点地址 :

    #php官网各版本下载地址:https://www.php.net/releases/

    #wget https://www.php.net/distributions/php-5.6.40.tar.bz2 #下载太慢可以用迅雷下载后复制过来

 

2.执行以下命令构建镜像

docker build -t hengda/php5.6-fpm:v1 .

构建成功会有如下提示:

构建期间有红色waring提示 ,是因为RUN后面有注释的原因

以hengda/php5.6-fpm:v1镜像运行一个容器,并命名容器为 hengda-php

docker run -it --name hengda-php hengda/php5.6-fpm:v1 /bin/bash

往php.ini文件中添加php扩展zip.so

extension=zip.so

进入容器之后安装laravel 框架源码

1.进入www目录执行命令

2.在www目录下,创建composer.json文件,并写入如下配置:

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.2.*"
    },
    "config": {
        "preferred-install": "dist"
    },
    "repositories": {
        "packagist": {
            "type": "composer",
            "url": "https://packagist.phpcomposer.com"
        }
    }
}

3.在www目录执行命令composer install

执行结果:

查看vendor/laravel/目录下的文件:

如果不报错 ,可以安装成功,那么 说明构建的 php镜像 可以使用。

 

### 回答1: 好的,您想问有关使用Docker运行PHP-FPM的问题,是吗?那我来简单介绍一下。 使用Docker运行PHP-FPM的主要目的是为了方便地进行开发和部署,同时还可以保证应用程序在不同环境中的一致性。下面是一些基本步骤: 1. 首先,您需要安装Docker,可以在官网上下载安装包。 2. 然后,您需要创建一个dockerfile文件,用于构建您的PHP-FPM镜像。示例文件内容如下: ``` FROM php:7.4-fpm-alpine RUN apk --update --no-cache add \ git \ unzip \ libzip-dev \ libpng-dev \ libjpeg-turbo-dev \ freetype-dev \ && docker-php-ext-install zip pdo_mysql mysqli gd \ && apk del --purge autoconf g++ make \ && rm -rf /var/cache/apk/* WORKDIR /var/www/html CMD ["php-fpm"] ``` 3. 接着,您可以使用以下命令构建您的镜像: ``` docker build -t your-image-name . ``` 4. 然后,您可以使用以下命令运行您的PHP-FPM容器: ``` docker run -d --name your-container-name -p 9000:9000 -v /path/to/your/app:/var/www/html your-image-name ``` 其中: - -d:表示在后台运行容器 - --name:指定容器的名称 - -p:将容器的9000端口映射到主机的9000端口 - -v:将主机上的应用程序目录挂载到容器中的/var/www/html目录中 5. 最后,您可以使用以下命令进入容器并查看PHP-FPM的日志: ``` docker exec -it your-container-name /bin/sh tail -f /usr/local/var/log/php-fpm.log ``` 希望这些信息能帮助到您。如果您还有其他问题,请随时问我。 ### 回答2: Docker是一种开源的容器化平台,可以在不同的操作系统中创建和管理轻量级的容器php-fpmPHP FastCGI Process Manager)是PHP中用于处理FastCGI的进程管理器。结合使用Dockerphp-fpm可以带来一些好处。 首先,使用Dockerphp-fpm可以使PHP应用程序更易于部署和管理。通过在Docker容器中运行php-fpm,可以将应用程序及其所有的依赖项打包到一个容器中,而不需要在不同的环境中进行配置和安装。这使得在不同的服务器上部署应用程序变得更加简单和一致。 其次,使用Dockerphp-fpm可以提供更好的资源管理。通过使用php-fpm进程管理器,可以控制和监视PHP进程的数量和资源使用情况。这有助于避免服务器过载和资源浪费,并确保应用程序的性能和稳定性。 此外,使用Dockerphp-fpm可以提高开发和测试的效率。在开发环境中,可以使用Docker容器来模拟生产环境,确保应用程序在不同的环境中具有一致的行为。还可以利用Docker容器的快速启动和停止功能,加速开发、测试和部署流程。 最后,使用Dockerphp-fpm还可以实现应用程序的可伸缩性。通过通过启动多个具有相同配置的php-fpm容器来处理更多的请求,可以轻松地扩大应用程序的处理能力。这使得应对高流量和负载峰值变得更加容易。 综上所述,通过结合使用Dockerphp-fpm,可以简化应用程序的部署和管理、提高资源利用率、加速开发和测试速度,并实现应用程序的可伸缩性。 ### 回答3: Docker是一个开源的应用容器引擎,可以将应用程序与其依赖项打包在一个轻量级的、可移植的容器中。而php-fpmPHP FastCGI Process Manager的简称,是一种常用的PHP处理器,它能够管理和处理PHP请求。 在使用Docker时,可以通过Docker镜像来运行php-fpm容器,以便于更方便、更快速地搭建和部署PHP应用程序。首先,我们可以根据需要选择适合的php-fpm镜像,并使用Docker命令来创建和启动容器。 在创建容器时,我们可以指定容器运行的端口号、挂载主机目录、设定环境变量等。例如,我们可以将容器的端口号映射到主机的某个端口上,这样就可以通过主机的IP地址和对应端口号来访问容器内运行的PHP应用程序。 另外,我们还可以通过容器之间的网络连接来实现不同容器间的通信。例如,我们可以创建一个Nginx容器来作为反向代理服务器,同时将其与php-fpm容器连接在一起,这样就可以实现客户端与PHP服务器之间的通信。 由于Docker的轻量级特性,可以在一台物理机或虚拟机上运行多个容器,每个容器可以独立运行,互不干扰。这样的模式可以有效地隔离应用程序及其依赖项,减少部署和升级的风险。 总而言之,通过使用Docker来运行php-fpm容器,可以更方便、更快速地部署和管理PHP应用程序,提高开发和运维效率。同时,Docker的轻量级特性和容器间的网络连接,也提供了更灵活和可扩展的部署方案,使整个应用环境更加稳定和可靠。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

one312

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值