docker实战——《第一节:给你的team小伙伴分配专有服务器》

写在前面的话:

本篇文章不再多述docker的相关理论知识;
也不再细谈docker能够做什么,docker比virtual machine有哪些优势;

在查看本篇文章之前,你应该先阅读几遍 docker官方文档

请看下面的实例。

注:下面的过程不限于宿主机器,主要你能安装成功docker,都可重现下面的过程。

1.情景

    在我们开发的过程中,会有各种各样的运行环境。
    需要test服务器;
    需要alpha服务器;
    需要beta服务器;
    需要正式服务器;
    需要给A组的人分配一个服务器;
    需要给B组的人分配一个服务器;

    巨蠢的办法,去买并且搭建这么多服务器。就算公司财大气粗,不计较这点钱,作为一个正常一点的程序员,完全也不能容忍这种行为。
    就算不去谈搭建这么多一致环境的环境需要耗费多大精力(因为有的服务器供应商会提供从备份文件恢复系统镜像服务),单是想想这么蠢的事情都受不了。
    同时,你发现某个同事把服务器主机搞的乱七八糟,难不成你还要一步一步去恢复?不存在的。

2.container协作流程

1 客户端http请求服务器80端口,该端口被映射到容器的Nginx80端口。
2 Nginx分析请求,如果是PHP脚本,通过PHP容器调用服务器获取脚本,然后FastCGI处理。
3 FastCGI解析PHP脚本,可能会与数据库交互。

3.了解我们的线上test环境

    我们需要的软件:
    1 mysql
    2 php
    3 nginx
    4 redis
    5 npm
    6 ...

    首先我们应该记住的,docker里面每一个服务就对应一个container。
    当然,特殊情况下,你也可以把lnmp作为一个服务,但是为了系统的耦合程度低,以及更符合docker的思想,我不推荐这样做.

4.下载镜像和运行容器

    3.1 下载镜像
    sudo docker pull registry.cn-hangzhou.aliyuncs.com/hncg/server:mysql-5.7-v1
    sudo docker pull registry.cn-hangzhou.aliyuncs.com/hncg/server:php-fpm-7.1-v2
    sudo docker pull registry.cn-hangzhou.aliyuncs.com/hncg/server:nginx-1.13-v1
    //不了解上面三行,请自行查看文档
    查看结果:

这里写图片描述

接下来,运行容器:
sudo docker run -d -p 3306:3306 [-v $dir:$dir] [--link $name:$name] --name mysql 7fed700f313c MYSQL_ROOT_PASSWORD=passwd

sudo docker run -d -p 9000:9000 [-v $dir:$dir] --link mysql:mysql --name php-fpm 61a1db608b3a

sudo docker run -d -p 80:80 [-v $dir:$dir] --link php-fpm:my_php --name nginx 5452cd9bcc9f
接下来,进入容器,看看里面有什么,这里我们进入mysql看看:

这里写图片描述

进入nginx 和php-fpm的容器同理。
为了方便,我们可以运行将这三个容器的命令直接放到sh脚本中去。

在配置好我们的nginx.conf之后,访问index.php

<?php
    phpinfo();
?>

就可以看到下面的页面:
这里写图片描述

5.写在后面的话

由于我XJB搞我的服务器,php mysql nginx都进入了某种奇怪的状态。
我只需要运行我们前面说的脚本文件,一个完好的全新的服务器就出来了,不会浪费您超过5秒钟。
sudo docker rm $(docker ps -a -q) 
sudo sh my_server.sh
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值