zoukankan      html  css  js  c++  java
  • docker搭建lnmp环境

    一 安装 nginx

    1 查看可用版本

    docker search nginx

    2 获取nginx镜像

    docker pull nginx[:版本]

    3 查看本地镜像

    docker images

    4 运行容器

    docker run --name my-nginx -p 81:80 -d nginx

    参数说明:

    --name my-nginx:容器名称命名为my-nginx

    -p 81:80:端口进行映射,将本地81端口映射到容器内部的80端口 [左边本地:右边容器]

    -d nginx:设置容器在后台一直运行

    5 安装成功

    docker ps 

    6 测试

    浏览器访问:127.0.0.1:81

    二 安装 php

    1 查看可用版本

    docker search php

    2 安装镜像

    docker pull php[:版本]

    3 查看本地镜像

    docker images

    4 运行容器

    docker run -p 9000:9000 --name my-php -v ~/nginx/www:/usr/share/nginx/html:ro -v ~/nginx/php-log:/usr/local/var/log -itd php:7.1-fpm

    参数说明:

    --name my-php:容器名称命名为my-php

    -p 9000:9000:端口进行映射,将本地81端口映射到容器内部的80端口

    -v ~/nginx/www:/usr/share/nginx/html:挂载,将主机项目中的目录挂载到容器的/usr/share/nginx/html

    -it:参数交互运行

    -d:参数后台运行

    ro:只读权限

    注意:docker机制,docker容器运行必须有一个前台进程,如果没有前台进程执行,容器认为空闲就会自行退出。

    常规后台运行php,一运行会立马退出,所以加入-it参数。

     5 安装成功

    docker ps 

    三 安装 mysql

    1 查看可用版本

    docker search mysql

    2 拉取mysql镜像

    docker pull mysql[:版本]

    3 查看本地镜像

    docker images 

    4 运行容器

    docker run -itd --name my-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql

    参数说明:

    -itd:后台交互运行

    --name my-mysql:容器名称命名为

    -p 3306:3306:映射容器服务的3306端口到宿主机的3306

    -e MYSQL_ROOT_PASSWORD:设置容器内环境变量,root的用户密码为root

    5 安装成功

    docker ps

    6 测试

    6.1 进入容器

    docker exec -it [容器名称|容器ID] bash

    6.2 进入mysql

    mysql -h localhost -u root -p 

    四 php+mysql部署

    1 启动php+mysql容器

    docker run --name php-mysql -p 9002:9000 -v ~/nginx/www:/usr/share/nginx/html:ro -v ~/nginx/php-log:/usr/local/var/log --link my-mysql:mysql  -itd php:7.1-fpm

    参数说明:

    --name php-mysql:容器名称命名为php-mysql

    -p 9002:9000:端口映射,将本地9002端口映射到容器内部的9000端口

    -v :挂载,将主机项目中的目录挂载到容器的/usr/share/nginx/html,将nginx配置文件挂载到/etc/nginx/conf.d,将nginx日志文件挂载到/var/log/nginx

    --link my-mysql:php:php链接mysql,把my-mysql的网络并入php

    2 安装成功 

    docker ps

    注意:

    如果mysql版本是8.0以上,需要做一些调整

    常见问题:

    请看链接:https://www.cnblogs.com/jingxiaoniu/p/12566883.html

    五 nginx+php部署

    1 创建核心文件夹方便后续将容器内文件映射到本地,以便查看/修改

    mkdir ~/nginx/nginx-conf ~/nginx/nginx-log ~/nginx/php-conf ~/nginx/php-log ~/nginx/www

    2 复制php以及nginx的配置和日志文件到本地

    2.1 复制php的配置文件

    docker cp my-php:/usr/local/etc ~/nginx/php-conf

    2.2 复制php的日志

    docker cp my-php:/usr/local/var/log ~/nginx/php-log

    2.3 复制nginx的配置文件

    docker cp my-nginx:/etc/nginx/conf ~/nginx/nginx-conf

    2.4 创建nginx的日志文件

    touch ~/nginx/nginx-log/error.log ~/nginx/nginx-log/access.log

    注意:

    复制出来的目录可能多一级,把配置文件全部复制到根目录下

    3 重新运行启动nginx容器

    docker run --name php-nginx -p 82:80 -d -v ~/nginx/www:/usr/share/nginx/html -v ~/nginx/nginx-conf/conf.d:/etc/nginx/conf.d -v ~/nginx/nginx-log:/var/log/nginx --link php-mysql:php -d nginx 

    参数说明:

    --name php-nginx:容器名称命名为php-nginx

    -p 82:80:端口映射,将本地82端口映射到容器内部的80端口

    -v :挂载,将主机项目中的目录挂载到容器的/usr/share/nginx/html,将nginx配置文件挂载到/etc/nginx/conf.d,将nginx日志文件挂载到/var/log/nginx

    --link my-php:php:nginx链接php,把php-mysql的网络并入nginx

    4 安装成功

    docker ps 

    5 测试

    127.0.0.1:82

    6 修改本地配置文件解析php文件

    配置文件中需要将解析php的注解去掉,修改root路径

    注意:

    核心是php配置文件的fastcgi_pass和fastcgi_param,如果这两个参数错误,会导致php的代码无法解析

    常见问题:

     https://www.cnblogs.com/jingxiaoniu/p/12560115.html

    以上就是本次的全部内容!

  • 相关阅读:
    NOI2018 你的名字——SAM+线段树合并
    [NOI2008]假面舞会——数论+dfs找环
    CF1037H Security——SAM+线段树合并
    CF700E Cool Slogans——SAM+线段树合并
    CF666E Forensic Examination——SAM+线段树合并+倍增
    [BJOI2019]光线——递推
    ProjectEuler215 Crack-free Walls
    ProjectEuler237 Tours on a 4 x n playing board
    [SCOI2016]美味——主席树+按位贪心
    [ZJOI2013]K大数查询——整体二分
  • 原文地址:https://www.cnblogs.com/jingxiaoniu/p/12557663.html
Copyright © 2011-2022 走看看