docker使用教程

Linux 发表时间:2021-11-03 18:22:41 作者:梁子亮 浏览次数:1296

一、docker普通安装部署lnp示例(没有m,因为mysql取其他服务器的数据库)

1、docker安装nginx(在/root目录即可,后面如无说明也是相同...)

docker pull nginx:latest

2、docker安装php-fpm,为了跟测试环境一致这里安装的是7.2.18(在/root目录即可,后面如无说明也是相同...)

docker pull bitnami/php-fpm:7.2.18-ol-7-r33-prod

注意:若安装的是php-fpm5.6,启动后phpinfo报timezone错误,则,可以进入php-fpm5.6的容器内,直接写入以下代码到conf.d文件夹下(因为php的配置会默认加载/usr/local/etc/php/conf.d/下的.ini文件)

printf '[PHP]\ndate.timezone = Asia/Shanghai\n' > /usr/local/etc/php/conf.d/tzone.ini

此时打开tzone.ini文件会发现

[PHP]
date.timezone = PRC

3、启动php(在/root目录即可,后面如无说明也是相同...)

docker run --name  myphp-fpm -v ~/nginx/www:/www  -d bitnami/php-fpm:7.2.18-ol-7-r33-prod

4、在/root目录新建文件夹

mkdir ~/nginx/conf/conf.d

5、新建如下文件

vim ~/nginx/conf/conf.d/runoob-test-php.conf

官方的示例如下

server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm index.php;
    }

    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  /www/$fastcgi_script_name;
        include        fastcgi_params;
    }
}

由于我们是tp5.1,public目录不一样,以及还有rewrite规则,所以我们修改为如下(在fastcgi_param处的'/www'后增加'/public'目录,增加rewrite规则,以及deny all规则)

server {
    listen       80;
    server_name  localhost;
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm index.php;
        if (!-e $request_filename) {
            rewrite  ^(.*)$  /index.php?s=$1  last;
            break;
        }
    }
    location ~ /Tpl/.*\.html {
       deny all;
    }
    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  /www/public/$fastcgi_script_name;
        include        fastcgi_params;
    }
}

6、启动nginx(若格式有误,建议到官网上复制:https://www.runoob.com/docker/docker-install-php.html)

docker run --name runoob-php-nginx -p 8083:80 -d \
    -v ~/nginx/www:/usr/share/nginx/html:ro \
    -v ~/nginx/conf/conf.d:/etc/nginx/conf.d:ro \
    --link myphp-fpm:php \
    nginx

7、在/root/nginx下创建www目录

mkdir ~/nginx/www

8、把tp5.1的项目代码上传到/root/nginx/www目录中,再重启一下php-fpm即可

docker restart myphp-fpm


二、docker-composer的yaml方式部署示例

上一篇   Nginx实现负载均衡