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/ 或 gitee https://gitee.com/mirrors/rancheros#iso

3. 在 virtualBox 中安装 rancheros.iso, 注意

       内存设置成2g,

       网卡设置为桥接,

       常规 -> 基本 -> 操作系统类型选Linux->Other Linux(64-bit) 

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/conf.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 -> 返回数据 -> 显示到浏览器中

posted @ 2020-09-15 21:15  myD  阅读(673)  评论(0编辑  收藏  举报