参考了 https://www.jianshu.com/p/fcd0e542a6b2  dodos大佬的一些经验

1.首先,由于nginx跟php的特性,使得二者可以单独作为独立容器存在,所以为了使html、php代码都能运行,需要两个容器都挂载同一个代码项目的目录

docker run --name docker-phpfpm -p 9000:9000 -v /var/www/html:/usr/local/nginx/html -d php:5.6-fpm
docker run --name nginx -p 80:80 -v /var/www/html:/usr/local/nginx/html --link docker-phpfpm:docker-phpfpm -d nginx  (因为我使用的nginx是官方镜像最新版,所以不需要在最后标注版本
2.修改nginx对应的default.conf,目录在/etc/nginx/conf.d下,大体内容如下
 

server {
listen 80;
server_name xxx;

#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;

location / {
root /usr/local/nginx/html;   //因为挂载的代码目录是这里,所以nginx的配置文件也要指向这里
index index.html index.htm;
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/nginx/html;  //因为挂载的代码目录是这里,所以nginx的配置文件也要指向这里
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass docker-phpfpm:9000;   //docker-phpfpm是连接的php容器名,即命令中--link 对应的容器名
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;   //因为phpfpm容器挂载的代码目录是这里,所以指向的php目录也必须是这个目录
include fastcgi_params;
}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}

其余的东西因为是测试搭建环境,并没有开启,后续考虑进阶

3.在宿主机上修改/var/www/html目录的文件,添加一个index.php , 内容只用一个 phpinfo();

请求域名 /index.php,可以正常请求

到此基本上基本的nginx + php的独立容器就搭建完成了

补充 :自己给自己挖了个坑,没有挂载nginx配置文件目录及php的目录,导致只能在docker里修改,就必须在docker中安装vim等,需要以后创建docker的时候挂载目录,提高配置效率等

补坑

docker run --name mysql -p 3306:3306 -v /root/bo/data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -it mysql
docker run --name php7 -p 9000:9000 -v /var/www/html:/usr/local/nginx/html --link mysql:mysql -it php7
docker run --name nginx -p 80:80 -v /var/www/html:/usr/local/nginx/html --link php7:php7 -it nginx
大致语法结构:docker run --name 容器名称 -p 端口映射 -v 挂载目录 --link 链接容器 -it[命令模式] 镜像名
 

docker 独立搭建linux + php 随笔的更多相关文章

  1. Docker镜像搭建Linux下samba共享目录

    Samba 是 SMB/CIFS 网络协议的重新实现, 它作为 NFS 的补充使得在 Linux.OS/2.DOS 和 Windows 系统中进行文件共享.打印机共享更容易实现.SMB协议是客户机/服 ...

  2. Linux 使用 docker 下搭建xunsearch 搜索引擎服务

    Linux 使用 docker 下搭建 xunsearch 搜索引擎服务 安装 docker 环境(菜鸟教程有说明) 安装docker说明 下载并运行 xunsearch 的服务端:docker安装x ...

  3. Istio入门实战与架构原理——使用Docker Compose搭建Service Mesh

    本文将介绍如何使用Docker Compose搭建Istio.Istio号称支持多种平台(不仅仅Kubernetes).然而,官网上非基于Kubernetes的教程仿佛不是亲儿子,写得非常随便,不仅缺 ...

  4. 使用Docker Compose搭建Service Mesh

    使用Docker Compose搭建Service Mesh 本文将介绍如何使用Docker Compose搭建Istio.Istio号称支持多种平台(不仅仅Kubernetes).然而,官网上非基于 ...

  5. Docker容器搭建android编译环境

    Docker容器搭建android编译环境 目录 1 部署容器 1.1 手动部署 1.1.1 配置docker 1.1.2 启动容器 1.1.3 配置环境 1.2 Dockerfile 2 镜像管理 ...

  6. Docker下搭建Jenkins构建环境

    首先需要搭建好docker环境的linux系统,这个教程多如牛毛,在此不再赘述. 然后编写一个dockerfile来生成一个镜像,dockerfile其实就是一系列命令的集合,有点像windows的批 ...

  7. spring boot / cloud (十八) 使用docker快速搭建本地环境

    spring boot / cloud (十八) 使用docker快速搭建本地环境 在平时的开发中工作中,环境的搭建其实一直都是一个很麻烦的事情 特别是现在,系统越来越复杂,所需要连接的一些中间件也越 ...

  8. Docker Machine搭建并加入节点

    对于集群服务器来讲,要在每台机器上手动安装Docker是一件及其痛苦的事情,还好有Docker Machine这一工具,Docker三剑客中的一角. 一.Docker Machine介绍 这个工具已经 ...

  9. docker swarm 搭建与服务更新

    一,docker swarm 是什么 Docker Swarm.Docker Machine与Docker Compose号称Docker三剑客Docker Swarm 和 Docker Compos ...

随机推荐

  1. python,pil库的小应用

    <pre>#euraxluo 5.15 #obj_1#跳一跳的外挂 from PIL import Image import subprocess import time import r ...

  2. 货币转换 I

    描述 人民币和美元是世界上通用的两种货币之一,写一个程序进行货币间币值转换,其中: 人民币和美元间汇率固定为:1美元 = 6.78人民币. 程序可以接受人民币或美元输入,转换为美元或人民币输出.人民币 ...

  3. 环境搭建--使用pytharm远程调试树莓派

    对于Linux和文本编辑器不那么熟悉的小伙伴来说,直接在树莓派中写程序可谓是痛苦万分.本文将介绍如何使用PyCharm远程调试树莓派,并同步当前python文件到树莓派中. 配置环境 首先要在个人电脑 ...

  4. UITableView自定义Cell中,纯代码编程动态获取高度

    在UITableView获取高度的代理方法中,经常需要根据实际的模型重新计算每个Cell的高度.直接的做法是在该代理方法中,直接根据模型来返回行高:另 [1]-(CGFloat)tableView:( ...

  5. Win10系统下Anaconda下安装多种Python函数库

    建议直接安装Anaconda,这是一个包含Numpy,Pandas,Sklearn等函数库的计算机科学软件包,下面的软件可以在此环境下进行安装下载. 一.计算机视觉 1. OpenCV图像处理 在ht ...

  6. 在Ubuntu下编译Qt错误及处理办法

    平台:Ubuntu16.04  64bit 虚拟机:VirtualBOX 编译软件:Qt 32bit (在64位环境下编译32bit的程序会出现很多错误,从编译器的安装以及整个库的编译) 问题一:er ...

  7. snmp服务中snmpwalk命令常用方法总结

    在日常监控中,经常会用到snmp服务,而snmpwalk命令则是测试系统各种信息最有效的方法,命令格式: snmpwalk  -c SNMP读密码 -v 1或2(代表SNMP版本) 交换机或路由器IP ...

  8. k8s nodeport下访问请求未被分发到所有node的排错(转)

    原文 https://www.myf5.net/post/2343.htm 现象: 从内部某个pod的容器里直接访问service的cluster地址,请求可以被正常转发到各个node上的pod里 但 ...

  9. 提问:MicrosoftUnderlying input stream returned zero bytes

    报错信息:MicrosoftUnderlying input stream returned zero bytes 报错截图: 查阅资料后,提示 jdbc的bug,不能将一个"NULL&qu ...

  10. 4、hello world

    package com.ourteam.firstexample; import io.netty.bootstrap.ServerBootstrap;import io.netty.channel. ...