zoukankan      html  css  js  c++  java
  • windows下使用rancheros和virtualBox搭建docker环境 (ngixn+php)

    2020-9-15 20:51:55 星期二

    概述:

    rancherOS是一个精简版的Linux系统,  他安装后默认将docker需要的东西也都给装上了.

    用 virtualBox 安装 rancherOS:

    1. 下载 virtualBox

    2. 下载 rancheros.iso: https://github.com/rancher/os/releases/

    3. 在 virtualBox 中安装 rancheros.iso, 注意内存设置成2g, 网卡设置为桥接, 其他不行

    4. 安装成功后, 界面上会显示出自动分配的ip地址

    5. 为了后续操作方便, 修改密码, (这个小系统已经修改过 sudoers 文件了可以直接用默认用户sudo执行命令)

      第一步修改rancher的密码: sudo passwd rancher 

      第二步修改root的密码: sudo passwd root

      第三步切换为root用户: su root

    6. 修改cloud-config.yaml

      文件的默认地址是: /var/lib/rancher/conf/cloud-config.yaml

      把本机的ssh公钥写到这个配置文件中: 

        ros config set rancher.ssh_authorized_keys "['ssh-rsa AAA.....']"

      修改docker镜像源: 

        ros config set rancher.docker.registry_mirror https://docker.mirrors.ustc.edu.cn

      修改为动态获取IP地址(也可以指定IP地址和域名服务器)

        ros config set rancher.network.interfaces.eth0.dhcp true

    7. 将修改的内容持久化到VB的虚拟硬盘上

      目前我们还是在下载的镜像文件上进行改动, 需要持久化到vb的虚拟硬盘上, 这样下次就不用再重复配置了

      命令: ros install -c /var/lib/rancher/conf/cloud-config.yml -d /dev/sda --append rancher.password=rancher   //注意要加append设置

      回车后会有一个提示, 选择y, 就安装完了;  接着还有一个提示, 让你重启, 不要选择, 直接 ctrl+c退出

      退出后, 操作virtualbox,

        设置->启动顺序->改为硬盘优先,

        设置->存储->控制器: IDE ->移除rancheros.iso镜像

    8. 回到vb界面, 启动rancheros

      启动完会有一个光标在闪烁, 回车, 提示输入密码, 输入第7步中持久化时的密码, 应该是登录进去了

    9. 远程登录

      官方建议: ssh -i /path/to/private/key rancher@<ip-address>

      如果用其他ssh工具比如 xshell 或 mtputty 或 putty, 配置一下私钥的地址, 然后也可以登录了

    搭建nginx 和 PHP

    另附PHPdocker镜像列表: https://github.com/docker-library/docs/blob/master/php/README.md#supported-tags-and-respective-dockerfile-links

    1. 拉取 php-fpm 和 nginx的docker镜像

    2. 在宿主机的用户目录创建两个目录, 用来存放php代码和nginx的配置文件

    1 PHP代码目录: ~/html/
    2 
    3 nginx配置文件目录: ~/nginx/confi.d/

    3. 启动两个容器, 并映射目录和端口

    1 sudo docker run --name php56 -v ~/html:/var/www/html -p 9560:9000 -d 6feac8f2ef42
    2 sudo docker run --name nginx119 -v ~/nginx/conf.d:/etc/nginx/conf.d -p 80:80 -d 6f715d38cfe0

    注意, PHP默认的代码目录在 /var/www/html, php的默认配置文件地址在 /var/local/etc/php; nginx的配置文件默认在/etc/nginx/conf.d

    4. 第二步中创建的两个目录中分别放入PHP代码文件和nginx配置文件

    1 //index.php
    2 <?php
    3 phpinfo();
    ## nginx配置文件, test.conf
    server {
            listen 80;
            server_name www.docker.com;
            root /var/www/html;
            location ~ .php$ {
                    fastcgi_buffer_size 512k;
                    fastcgi_buffers 32 128k;
                    fastcgi_pass   172.17.10.165:9560;
                    fastcgi_read_timeout 1200;
                    fastcgi_index  index.php;
                    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                    include        fastcgi_params;
    
            }
    
    }
    注意: 
     1. 其中的fastcgi_pass指令中的ip地址是rancheros自动获取的ip地址, 启动rancheros后会在启动页面显示出来
     2. root指令, 是php-docker中存放代码的路径, 我们这里映射到了宿主机的 ~/html目录

    5. 在你的windows电脑里hosts文件配置硬解析, 将www.docker.com 指向virtualBox 里的rancheros的IP地址, 在浏览器中访问www.docker.com就可以访问到index.php了

    6. 总结: windows浏览器访问www.docker.com -> 转向 rancherOS中 -> 转向 docker-nginx -> 转向 docker-php -> 返回数据 -> 显示到浏览器中

  • 相关阅读:
    is 和 == 的区别,utf和gbk的转换,join用法
    python字典的整理信息
    poj分类
    cloud computing
    POJ1007 关于STL排序方法 动态数组的创建 和向量的使用
    math类
    研究生考试感想
    4.11
    重看设计模式 观察者模式
    子串计算 2010北京大学复试机试题
  • 原文地址:https://www.cnblogs.com/iLoveMyD/p/13675706.html
Copyright © 2011-2022 走看看