用户
搜索
  • TA的每日心情

    2017-12-28 15:34
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看

    版主

    Rank: 7Rank: 7Rank: 7

    77

    主题

    265

    帖子

    1738

    魔法币
    收听
    0
    粉丝
    68
    注册时间
    2016-6-21

    i春秋认证春秋巡逻i春秋签约作者春秋游侠春秋文阁

    发表于 2018-11-10 22:42:28 26252
    本帖最后由 Sp4ce 于 2018-11-13 02:17 编辑

    搭建

    本篇文章主要是制作一个WEB容器,了解端口映射原理和数据卷挂载原理
    操作过程:

    第一步:准备工作

    • 根目录: /opt/docker
    • 网站根目录:/opt/docker/www
    • nginx相关目录:/opt/docker/nginx/conf.d

    第二步:安装php7,nginx,mysql

    //拉取nginx镜像  
    docker pull nginx  
    //拉取php镜像  
    docker pull php:7.1.0-fpm  
    //拉取mysql镜像  
    docker pull mysql:5.7.18

    注意!
    mysql务必加上版本号 否则会拉取MySQL8.0的镜像下来导致后面各种奇奇怪怪的错

    第三步:启动基础环境

    //启动php  
    docker run -p 9000:9000 --name php -v /opt/docker/www/:/var/www/html/ --privileged=true -d php:7.1.0-fpm  
    //启动nginx  
    docker run -p 80:80 --name nginx -v /opt/docker/www/:/usr/share/nginx/html/ -v /opt/docker/nginx/conf.d:/etc/nginx/conf.d --privileged=true -d nginx  
    //启动mysql  
    docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql5 -v /opt/docker/mysql-5.7.18/data:/var/lib/mysql -d mysql:5.7.18

    命令详解
    -v /opt/docker/www/:/var/www/html/:把宿主机(Ubuntu)的/opt/docker/www/挂载到了docker的/var/www/html/
    --name php 命名为php
    -p 80:80 把宿主机的80映射到docker的80端
    -e MYSQL_ROOT_PASSWORD=123456 设置MySQL密码为123456

    测试环境是否正确

    编辑文件/opt/docker/www/index.php

    <?php
    phpinfo();
    ?>

    然后在宿主机目录/opt/docker/nginx/conf.d/新建index.conf
    内容如下

    server {
      listen  80;
      #server_name www.test.com;
      root   /usr/share/nginx/html/;#nginx映射的地址
      location / {
       index index.html index.htm index.php;
       autoindex off;
      }
      location ~ \.php(.*)$ {
       root   /var/www/html/;#php映射的地址 同时定义为$document_root
       fastcgi_pass 172.17.0.2:9000;
       fastcgi_index index.php;
       fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       fastcgi_param PATH_INFO $fastcgi_path_info;
       fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
       include  fastcgi_params;
      }
    }

    然后重启nginx docker

    docker restart nginx

    访问10.16.11.231【你部署Docker的机器的地址】查看是否输出PHPINFO

    如图即为成功

    Debug The World
    发表于 2018-11-11 15:45:34
    期待中。。。。
    http://www.anonymou5.com
    使用道具 举报 回复
    发表于 2018-11-17 18:08:57
    dsads俺爱 发发发发
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册