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

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

  • 相关阅读:
    hihocoder 1049 后序遍历
    hihocoder 1310 岛屿
    Leetcode 63. Unique Paths II
    Leetcode 62. Unique Paths
    Leetcode 70. Climbing Stairs
    poj 3544 Journey with Pigs
    Leetcode 338. Counting Bits
    Leetcode 136. Single Number
    Leetcode 342. Power of Four
    Leetcode 299. Bulls and Cows
  • 原文地址:https://www.cnblogs.com/jingxiaoniu/p/12557663.html
Copyright © 2011-2022 走看看