虚拟机 docker部署php

首先我们来安装一下docker,使用官方安装脚本自动安装,安装命令如下

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
# 也可以使用国内daocloud一键安装命令
curl -sSL https://get.daocloud.io/docker | sh

在这里插入图片描述
在这里插入图片描述

本人使用的第一个安装命令,第二个命令也可以用。之前安装使用过
安装使用

docker version / docker -v

查看一下当前版本,是否安装完毕
在这里插入图片描述

docker拉取镜像

安装完之后,我们来看一下有没有镜像

docker images

在这里插入图片描述
发现我们的docker还没有运行,先启动我们docker服务

启动:service docker start
停止:service docker stop
重启:service docker restart

在这里插入图片描述

docekr启动完毕
我们接下来要安装nignx和php镜像,像mysql和redis就不做演示,我们镜像去哪里找呢
docker https://hub.docker.com/

安装niginx和php

docker pull nginx:latest

这里我直接拉最新版的niginx latest(最新版本)
在这里插入图片描述

php我们就拉php7.4版本就好了

docker pull php:7.4-fpm
在这里插入图片描述

docker images

查看自己的镜像

在这里插入图片描述
这时候 我们的镜像已经生成

docker 创建运行容器

1.创建nginx文件夹用来存放待会要挂载的目录,这里我是nginx文件夹 mkdir -p /docker/nginx/www

mkdir -p /docker/nginx/www

在这里插入图片描述

2.docker run --name myphp-fpm -v /docker/nginx/www:/www -d 38f2b691dcb8创建运行php7.4运行容器,名为 myphp-fpm(可自定义)
-v是挂载的目录,容器和服务器本身挂载。为的是以后不用进去容器内,既能修改(/docker/nginx/www 可修改)
-d后台运行
38f2b691dcb8 php镜像的id,可以通过docker images
容器主要配置

docker run --name myphp-fpm -v /docker/nginx/www:/www -d 38f2b691dcb8

在这里插入图片描述

3.创建运行容器,查看一下正在运行的docker的php容器·docker ps

4.创建conf、conf.d目录 mkdir -p /docker/nginx/conf/conf.d,一定要用mkdir -p递归创建目录,即使上级目录不存在,会按目录层级自动创建目录

mkdir -p /docker/nginx/conf/conf.d
在这里插入图片描述

5.创建自己的conf文件,并写入自己的配置conf文件可以自己命名

vi docker.conf

在这里插入图片描述
docker.conf文件内容

server {
listen 80;
server_name localhost; #这里修改成自己的域名
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

#当请求网站下php文件的时候,反向代理到php-fpm
location ~ .php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;
include fastcgi_params;
}
}

接下来就创建运行nginx的容器,并打通容器之间的互联

docker run --name nginx -p 8080:80 -d -v /docker/nginx/www:/usr/share/nginx/html -v /docker/nginx/conf/conf.d:/etc/nginx/conf.d --link myphp-fpm:php nginx

-p 主机和容器端口互联,主机8080:80
-v 目录挂载
link nginx和php容器互联
在这里插入图片描述

如果我们想进一步的修改nginx配置。我们可以使用docker exec -it aa18aaaf3806 \base\sh 进去容器里修改对应配置 aa18aaaf3806是容器的id

测试

创建index.php,在docker/nginx/www创建即可

cd /docker/nginx/www
vi index.php

在这里插入图片描述

<?php echo phpinfo(); ?>

创建完成之后,在浏览器输入自己的绑定的域名即可,记得输入你绑定的端口号
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答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-fpm(PHP 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-fpm是PHP 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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值