1、下载安装nginx

docker pull nginx

2、启动nginx容器

docker run -p 80:80 --name mynginx -v $PWD/www:/www -v $PWD/conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs -d nginx

这时会报错:

2ac8c2376d3d359aff2ea785/merged/etc/nginx/nginx.conf" caused "not a directory""": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.

我们来分析一下

-p 80:80:将容器的80端口映射到主机的80端口

--name mynginx:将容器命名为mynginx

-v $PWD/www:/www:将主机中当前目录下的www挂载到容器的/www

-v $PWD/conf:/etc/nginx/nginx.conf:将主机中当前目录下的nginx.conf挂载到容器的/etc/nginx/nginx.conf

-v $PWD/logs:/wwwlogs:将主机中当前目录下的logs挂载到容器的/wwwlogs

主要是因为conf文件的问题,ok,我们先删除该容器,避免重名

docker rm mynginx

再来一次,先不挂载nginx.con配置文件

docker run -p 80:80 --name mynginx -v $PWD/www:/www -v $PWD/logs:/wwwlogs -d nginx

然后使用如下命令进入交互式终端:

sudo docker exec -it mynginx /bin/bash

cd /etc/nginx/

ls

找到nginx.conf 配置文件

使用exit命令退出交互式终端

docker cp 52856d9cccc0:/etc/nginx/nginx.conf $PWD/conf/nginx.conf #52856d9cccc0与上面的root@52856d9cccc0要对应

但是在修改/root/conf/nginx.conf文件实现负载均衡的时候不起作用

docker rm mynginx

再次使用命令重新新建nginx容器:

docker run -p 80:80 --name mynginx --network host -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs -d nginx

这时候就可以了访问默认网页了

3、下载php镜像和启动镜像

docker pull php:7.1.0-fpm

docker run -p 127.0.0.1:9000:9000 --name myphp -v $PWD/www/:/var/www/html/ --privileged=true -d php:7.1.0-fpm

查看php镜像的ip地址docker inspect --format='{{.NetworkSettings.IPAddress}}' myphp

172.17.0.2

4、PHP的docker容器里安装PHP扩展

apt-get update

apt-get install libpng12-dev

docker-php-ext-configure gd --enable-gd-native-ttf -with-jpeg-dir=/usr/lib --with-freetype-dir=/usr/include/freetype2

docker-php-ext-install gd

docker-php-ext-install pdo_mysql

安装mysqli扩展

官方php镜像

  1. docker exec -it php-fpm bash
  2. cd /usr/local/bin
  3. ./docker-php-ext-install mysqli

安装bcmath扩展

docker-php-ext-install bcmath

5、关联PHP配置nginx.conf

server {

listen 80;

server_name 域名;

#charset koi8-r;

access_log /wwwlogs/web-backend/web-backend.log main;

location / {

root /www/web-backend/backend/web;

index index.html index.htm index.php;

try_files $uri $uri/ /index.php?$args;

}

location ~ .*.(php|php5)?$ {

root /var/www/html/web-backend/backend/web/;

fastcgi_pass 172.17.0.2:9000;

fastcgi_index index.php;

include fastcgi_params;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

}

}

增加红色部分,配置完就可以运行你的项目了!

docker nginx安装模块_docker安装nginx与php7.1相关推荐

  1. docker mysql忽视大小写_Docker安装MySQL忽略大小写问题的问题

    Docker安装MySQL忽略大小写问题的问题 连接MySQL: 查看当前mysql的大小写敏感配置 show global variables like '%lower_case%'; +----- ...

  2. docker镜像指定安装源_Docker 安装与镜像

    安装docker 1.使用阿里云的yum源 #cd /etc/yum.repos.d/ 这目录存放了当前系统的yum源配置信息#wget http://mirrors.aliyun.com/repo/ ...

  3. docker选择安装路径_Docker安装

    此为小组内成员编写,这里只是代发出来 Docker Toolbox版 1.Docker可以支持在 Mac.Windows.Linux 上安装,但是在 Windows10 系统中Docker for W ...

  4. docker mysql8.0挂载_Docker安装MySQL 8.0.17 并挂载数据及配置文件,修改时区

    一般来说是不需要手动指定MySQL挂载卷,因为mysql会自动挂载, 通过 dokcer inspect 你的容器名称 可以查看容器已挂载的路径 /var/lib/docker/volumes/855 ...

  5. docker登录密码错误_Docker安装运行Mysql 5.7.31容器并修改数据库密码

    一.安装Docker 参见文章:https://blog.csdn.net/y1534414425/article/details/107872715 二.拉取Mysql 5.7.31镜像 1dock ...

  6. docker做mysql分布式_docker安装WordPress-web mysql分布式安装

    docker安装WordPress-web mysql分布式安装 发布时间:2020-06-17 23:23:20 来源:51CTO 阅读:224458 作者:九月朦胧 栏目:云计算 1.下载php- ...

  7. docker mysql总是退出_docker 安装 mysql

    Docker简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布 ...

  8. docker开机启动失败_docker安装后启动不了 解决方法

    第一种情况: 可能是你的selinux没有disabled,导致了守护docker的deamon进程启动不了 查看系统日志如果发现下列信息: May 7 12:34:14 localhost dock ...

  9. Nginx核心模块ngx_http_proxy_module与nginx反向代理、负载均衡详解

    反向代理 反向代理(reverse proxy) 方式是指用代理服务器来接受Internet上的连接请求, 然后将 请求转发给内部网络中的上游服务器, 并将从上游服务器上得到的结果返回给Interne ...

最新文章

  1. free -m linux,linux中free -m 中的一些解释
  2. maven打包出错: Failed to clean project: Failed to delete
  3. webpack3 css,媒体查询不能使用CSS /样式加载器和Webpack3
  4. ae合成复制脚本_稀缺资源—这几个AE脚本使用频率很高,赶紧收藏吧!
  5. python爬虫知识大全_Python爬虫入门有哪些基础知识点
  6. linux用vfork创建进程,[Linux进程]使用vfork创建子进程并且执行命令
  7. python计算排队时间_python计算排队时间_Python(pdb)-排队执行命令
  8. Linux的目录ls命令
  9. 嵌入式软件工程师就只需会写C代码吗
  10. 按头安利!精品又实用的unity3D游戏素材看这里!
  11. 联想移动裁员为求自保 摩托罗拉品牌逐渐消退
  12. Log4j史诗级漏洞,从原理到实战,只用3个实例讲明白
  13. python人狗大战游戏_day23 02 组合(继续人狗大战游戏)
  14. 数据库_之常用API的使用
  15. 硕士阶段人工智能有哪些比较好的发论文的方向?
  16. 2020 7月蓝桥杯初赛 C++B组(详细解答)
  17. 斗破苍穹文字页游php_《斗破苍穹》官方网站! - 页游 - 可以阅读的网页游戏[YeGame.COM]...
  18. 编程猫python讲师面试_你为什么从编程猫离职?
  19. SSD的使用寿命一般有多久
  20. IDEA Ctrl+Alt+L 自定义格式化代码的编码格式

热门文章

  1. php7 ext skel_基于PHP7的PHP扩展开发之一(hello word)
  2. unity 2d摄像机类型_Unity使用笔记2——功能介绍
  3. 招聘|追觅科技VSLAM​、CV算法实习生招聘
  4. 自动驾驶 | MINet:嵌入式平台上的实时Lidar点云数据分割算法,速度可达 20-80 FPS!...
  5. 2021-07-12 深度学习服务器网络测试(顶会ECCV网络测试)
  6. 在IOS中创建get,set方法
  7. Windows下dump文件生成与分析
  8. NeuIPS|在知识图谱上嵌入逻辑查询
  9. RDKit:化合物骨架分析
  10. 图神经网络(GNN)的简介