docker 部署nginx、php-fpm

摘要:
假设机器上已安装Docker Environment 1。运行nginx容器1.在DockerHub上查找nginx映像runoob@runoob:~/nginx$dockersearchnginxNAMEDESCRIPTIONSTARSOFFICIALAUTOMATEDnginx官方版本nginx.3260[OK]jwilder/nginx代理自动Nginxrvers

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

一.运行nginx容器

1.查找Docker Hub 上的nginx 镜像

runoob@runoob:~/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.拉取官方镜像

runoob@runoob:~/nginx$ docker pull nginx

3.查看本地镜像

runoob@runoob:~/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-demo
mkdir php
mkdir

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.浏览器访问查看运行结果

docker 部署nginx、php-fpm第1张

  

免责声明:文章转载自《docker 部署nginx、php-fpm》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇定时器-影子寄存器类似西瓜视频、抖音的自动播放库下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

.net4.5部署到docker容器

.net4.5部署到docker容器 部署到windows容器 部署到linux容器 部署到windows容器 由于.net本身就是运行在windows平台的,所以它与windows容器也是更加适合,你可以以iis镜像为基础,去编写你的Dockerfile文件,从而去构建你的.net项目镜像。 两个现成的例子 .net console程序 docker...

在windows环境里,用Docker搭建Redis开发环境(新书第一个章节)

大家都知道高并发分布式组件的重要性,而且如果要进大厂,这些技术不可或缺。但这些技术的学习难点在于,大多数项目里的分布式组件,都是搭建在Linux系统上,在自己的windows机器上很难搭建开发环境,如果无法搭建开发环境,就无法实际操练,而单靠背理论题,是无法通过面试的。 比如搭建Redis环境,或许可以在windows上下载个版本,但这个版本不是最新的,而...

vue项目部署到nginx服务

vue开发的项目,通过编译会得到 dist文件夹,如何发布到nginx服务器上? 配置nginx服务器 在nginx服务文件中,打开 conf文件夹 为了不改变nginx的默认配置(nginx.conf),复制一份,重名为 custom.conf 修改 custom.conf 文件中的 root 参数为 custom ...... server...

OneinStack——PHP多版本共存

前言 我事先安装的是LNMP环境,PHP版本为7.2,但是现在环境需要一个PHP5.6,所以就准备安装个上版本,顺带写个安装教程,写完后我发现了原来有直接安装的命令!所以后面的内容大家可以忽略了!从配置nginx文件看就好了! ./oneinstack/install.sh –mphp_ver 56 详细参数 version: 2.0 updated...

创建docker容器遇到的错误

1.问题截图   2.问题描述  出现该问题就是docker版本和系统版本不兼容导致的.   现在的系统版本和docker的版本如下:   3.问题解决   安装低版本的docker或者高版本的系统(Centos7.4以上)即可解决.   安装低版本的docker地址: https://www.cnblogs.com/jialanyu/p/1087545...

php变量类型及几个常用的打印方式

变量的数据类型: 1,标量类型:int (整型),float(浮点型),boolean(布尔型),string(字符串型) 2,复合类型:array(数组),object(对象) 3,特殊类型:null(空),resource(资源) 几个常用的打印方式: 1,echo输出一个或多个字符串,他是PHP语句,不是函数,所以他没有返回值 <?php...