分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

docker 部署nginx、php-fpm

发布时间:2023-09-06 02:20责任编辑:彭小芳关键词:nginx

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

一.运行nginx容器

1.查找Docker Hub 上的nginx 镜像

runoob@runoob:~/nginx$ docker search nginxNAME ?????????????????????DESCRIPTION ????????????????????????????????????STARS ????OFFICIAL ??AUTOMATEDnginx ????????????????????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 nginxREPOSITORY ?????????TAG ????????????????IMAGE ID ???????????CREATED ????????????SIZEnginx ??????????????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-democd ?/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 phpNAME ?????????????????????????????????????????????????????DESCRIPTION ????????????????????????????????????STARS ??????????????OFFICIAL ???????????AUTOMATEDphp ??????????????????????????????????????????????????????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 ????????????????????????20centos/php-56-centos7 ????????????????????????????????????Platform for building and running PHP 5.6 ap… ??16clinta/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文件,文件内容如下

<?phpecho 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

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

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved