docker 部署nginx、php-fpm

假设机器上已经安装好docker环境

一.运行nginx容器

1.查找Docker Hub 上的nginx 镜像

[email protected]:~/nginx$ docker search nginx
NAME                      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                     Official build of Nginx.                        3260      [OK]
jwilder/nginx-proxy       Automated Nginx reverse proxy for docker c...   674                  [OK]
richarvey/nginx-php-fpm   Container running Nginx + PHP-FPM capable ...   207                  [OK]
million12/nginx-php       Nginx + PHP-FPM 5.5, 5.6, 7.0 (NG), CentOS...   67                   [OK]
maxexcloo/nginx-php       Docker framework container with Nginx and ...   57                   [OK]
webdevops/php-nginx       Nginx with PHP-FPM                              39                   [OK]
h3nrik/nginx-ldap         NGINX web server with LDAP/AD, SSL and pro...   27                   [OK]
bitnami/nginx             Bitnami nginx Docker Image                      19                   [OK]
maxexcloo/nginx           Docker framework container with Nginx inst...   7                    [OK]
...

2.拉取官方镜像

[email protected]:~/nginx$ docker pull nginx

3.查看本地镜像

[email protected]:~/nginx$ docker images nginx
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              555bbd91e13c        3 days ago          182.8 MB

4.创建html静态文件,运行nginx 容器

  1)新建一个html子目录。

  mkdir html

  2)在这个子目录里面,放置一个index.html文件,内容如下。

  <h1>Hello World</h1>

  

docker container run   -d   -p 80:80   --rm   --name mynginx   --volume "$PWD/html":/usr/share/nginx/html   nginx  

  3)打开浏览器访问127.0.0.1,应该就能看到 Hello World 了。

mkdir /Users/playcrab/nginx-docker-demo
cd  /Users/playcrab/nginx-docker-demomkdir phpmkdir 

5.配置nginx配置文件运行nginx容器,查看nginx是否起作用

 1)把容器里面的 Nginx 配置文件拷贝到本地。

$ docker container cp mynginx:/etc/nginx .

说明:上面命令的含义是,把mynginx容器的/etc/nginx拷贝到当前目录。不要漏掉最后那个点。执行完成后,当前目录应该多出一个nginx子目录。然后,把这个子目录改名为conf

2)执行完成后,当前目录应该多出一个nginx子目录。然后,把这个子目录改名为conf

$ mv nginx conf

 3)进入配置文件目录编辑本地配置文件,此文件会被映射到容器的对应目录里

  

server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;//容器的目录
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;//容器的静态文件目录
    }

} 

4)cd /Users/playcrab/nginx-docker-demo,运行如下命令

docker container run   -d   -p 80:80   --rm   --name mynginx   --volume "$PWD/html":/usr/share/nginx/html   --volume "$PWD/conf":/etc/nginx  nginx

  ps:$PWD是当前目录的意思

在浏览器查看127.0.0.1可以正常访问

6.配置与php容器通信的nginx容器

1)编辑docker.conf配置文件

server {
    listen       80;
    server_name  docker.com;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \.php$ {
        fastcgi_pass   php:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/html/$fastcgi_script_name;
        include        fastcgi_params;
    }
}
ps:  /var/www/html/  容器中的php文件目录,会在运行php-fpm容器时用到

 

2)运行如下命令

docker container run --rm --name mynginx --volume "$PWD/html":/usr/share/nginx/html --volume "$PWD/conf":/etc/nginx -p 80:80  --link myphp-fpm:php -d nginx

  ps:

--link myphp-fpm:php 把 myphp-fpm 的网络并入 mynginx,并通过修改 mynginx 的 /etc/hosts,把域名 php 映射成 127.0.0.1,让 nginx 通过 php:9000 访问 php-fpm。

3)配置本地host文件,加入下面代码

127.0.0.1  docker.com

  

  

二、运行php容器   

1.查找Docker Hub 上的php 镜像

zhangxueqing:~ playcrab$ docker search php
NAME                                                      DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
php                                                       While designed for web development, the PHP …   3987                [OK]
phpmyadmin/phpmyadmin                                     A web interface for MySQL and MariaDB.          642                                     [OK]
richarvey/nginx-php-fpm                                   Container running Nginx + PHP-FPM capable of…   634                                     [OK]
composer                                                  Composer is a dependency manager written in …   292                 [OK]
adminer                                                   Database management in a single PHP file.       180                 [OK]
php-zendserver                                            Zend Server - the integrated PHP application…   155                 [OK]
webdevops/php-nginx                                       Nginx with PHP-FPM                              117                                     [OK]
webdevops/php-apache-dev                                  PHP with Apache for Development (eg. with xd…   82                                      [OK]
webdevops/php-apache                                      Apache with PHP-FPM (based on webdevops/php)    74                                      [OK]
phpunit/phpunit                                           PHPUnit is a programmer-oriented testing fra…   63                                      [OK]
bitnami/php-fpm                                           Bitnami PHP-FPM Docker Image                    61                                      [OK]
nazarpc/phpmyadmin                                        phpMyAdmin as Docker container, based on off…   58                                      [OK]
1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5      ubuntu-16-nginx-php-phpmyadmin-mysql-5          47                                      [OK]
tetraweb/php                                              PHP 5.5, 5.6, 7.0, 7.1 for CI and running te…   30                                      [OK]
wodby/drupal-php                                          PHP for Drupal                                  25                                      [OK]
circleci/php                                              CircleCI images for PHP                         20
centos/php-56-centos7                                     Platform for building and running PHP 5.6 ap…   16
clinta/phpipam                                            phpIPAM web IP address management applicatio…   16                                      [OK]
antage/apache2-php5                                       Docker image for running Apache 2.x with PHP…   11                                      [OK]
graze/php-alpine                                          Smallish php7 alpine image with some common …   11                                      [OK]
1and1internet/ubuntu-16-nginx-php-phpmyadmin-mariadb-10   ubuntu-16-nginx-php-phpmyadmin-mariadb-10       9                                       [OK]
appsvc/php                                                Azure App Service php dockerfiles               6                                       [OK]
phpspec/phpspec                                           PHPSpec: A php toolset to drive emergent des…   5                                       [OK]
lephare/php                                               PHP container                                   4                                       [OK]
isotopab/php                                              Docker PHP                                      0                                       [OK]

  

2.拉取官方镜像,标签为phpdockerio/php71-fpm

zhangxueqing:~ playcrab$ docker pull phpdockerio/php71-fpm 

3.本地创建php目录,创建index.php文件,文件内容如下

<?php
echo phpinfo();

  

4运行容器

docker run -p 9000:9000 --name  myphp-fpm -v "$PWD/php":/var/www/html -d phpdockerio/php71-fpm

6.浏览器访问查看运行结果

  

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 }

原文地址:https://www.cnblogs.com/zxqblogrecord/p/9889493.html

时间: 2024-08-30 15:57:57

docker 部署nginx、php-fpm的相关文章

Centos7 下面安装docker 部署Nginx

实验 环境 Centos 7 操作系统 安装docker yum install docker -y 查看docker 是否安装成功 docker -v Docker version 1.12.6, build 3a094bd/1.12.6 启动docker systemctl start docker 部署Nginx 获取基础镜像 docker pull nginx:1.10.3 查看 镜像 1.直接启动容器 docker run -d -p 8080:80 nginx:1.10.3 解释:

docker 部署nginx+weblogic集群

测试一段时间,再来报告 docker 部署nginx+weblogic集群

使用docker部署nginx+tomcat架构(2):访问mysql数据库

上一篇完成了通过docker部署nginx+tomcat的基础软件架构,但是距离一个真正可用的软件架构还差得很远.其中最重要的一点是缺少数据库这个角色的存在,那么本篇就来完善这一点. 废话少说,直接进入正题. 首先拉取mysql镜像: docker pull mysql:5.7 创建本地mysql目录: mkdir -p ~/mysql/data ~/mysql/conf ~/mysql/logschmod -R 777 ~/mysql/logs 在mysql/conf目录下创建配置文件my.c

使用docker部署nginx+tomcat架构(3):使用docker-compose简化部署操作

经历了之前的两篇,我们已经大体上了解了docker部署容器的过程. 使用docker部署nginx+tomcat架构 使用docker部署nginx+tomcat架构(2):访问mysql数据库 不过,整个部署过程中需要手动输入很多的docker命令,稍显繁琐并且容易出错.那么有没有一种相对简洁优雅的方式来完成这些部署工作呢?答案是有的,docker-compose(一下简称“compose”)正是为此而生. 关于docker-compose(了解更多:https://docs.docker.c

docker 部署 nginx+php+mysql

系统:centos7 使用root账户 开放80端口 firewall-cmd --zone=public --add-port=80/tcp --permanent 安装docker yum install docker -y 安装docker-compose yum install epel-release -y yum install -y python-pip pip install -U docker-compose 部署nginx+php+mysql 开启docker systemc

学习docker 部署nginx记录

docker pull nginx $ docker pull nginx $ docker run --name nginx-test -p 8081:80 -d nginx docker config $ mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf $ docker cp d624b3debbc9(namenginx-test容器id 运行删除括号内容):/etc/nginx/nginx.conf ~/nginx/conf www: 目录将映

Docker部署nginx+springboot-web项目

部署方案一 前期准备 拉取mysql docker pull mysql 拉取nginx docker pull nginx 更改web数据源 url: jdbc:mysql://business-db:3306/business?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=

docker部署nginx服务器

1,下载nginx镜像 docker pull nginx 2,启动 docker run --name runoob-nginx-test -p 8081:80 -d nginx 3,创建本地目录 mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf 4,复制容器中的配置文件到本地目录 docker cp 容器id:/etc/nginx/nginx.conf ~/nginx/conf 5,启动新容器 docker run -d -p 8082:80 --

Docker部署Nginx、Tomcat集群

Tomcat集群由多个tomcat组成,使用Nginx的好处是可以实现负载均衡和动静分离.使用Docker的好处是~~~我们不需要复杂的配置,只需要执行简单的命令就能拉取已有的官方docker镜像,再通过一条命令就能运行我们的实例了.对于多个Tomcat,我们使用相同的镜像,然后使用简单的命令,就能创建不同的tomcat container实例. 1.拉去镜像 $ docker pull tomcat:8-jre8-alpine $ docker pull nginx:latest $ dock