docker privileged作用_docker安装nginx与php7.1

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

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

f1947643e4e0cc764458d1d404ca9fd8.png

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

docker pull php:7.1.0-fpm

docker run -p 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

014047451a23d95a65345b798328854b.png

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;

}

}

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值