游戏蛮牛学习群(纯技术交流,不闲聊):539178957
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

开发者专栏

关注:2285

当前位置:游戏蛮牛 技术专区 开发者专栏

__________________________________________________________________________________
开发者干货区版块规则:

  1、文章必须是图文形式。(至少2幅图)
      2、文章字数必须保持在1500字节以上。(编辑器右下角有字数检查)
      3、本版块只支持在游戏蛮牛原创首发,不支持转载。
      4、本版块回复不得无意义,如:顶、呵呵、不错......【真的会扣分的哦】
      5、......
__________________________________________________________________________________
查看: 2384|回复: 27

[士郎] 游戏开发 应用Docker实现开发环境

[复制链接]  [移动端链接]
排名
60599
昨日变化
15

7

主题

8

帖子

70

积分

Rank: 9Rank: 9Rank: 9

UID
250663
好友
0
蛮牛币
171
威望
0
注册时间
2017-10-25
在线时间
9 小时
最后登录
2018-1-5

专栏作家

发表于 2017-11-23 13:39:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
本帖最后由 卫宫士郎 于 2017-11-23 13:49 编辑

简单点
最近,跟一个大学金融系的同学交流,发现他对科技发展的动态非常了解,然而对于一些技术关键字的应用并不是很理解。

对于普通不懂技术的小白来说,如果去咨询一些IT行业技术大牛,他们往往会获得一个一脸懵逼的回答。比如说,他问我“云计算”是什么?百度百科:

云计算[1] (cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。

1.png


别说一个技术小白了,就算现在我看完这句话,我也是一脸懵逼,难为大家了。站在技术小白的角度,去看看网上的一些“云计算”的解释,你会发现,还是那么的难以理解。

用产品的口吻来说:用户体验不好

我尝试给他作出类比:

“古时候,人们家里做一口井,水从井里打出来,而现在,我们扭开水龙头,水就来了; 10年前,你要装软件,得跑去电脑城买光碟,而现在,连上网打开应用商店,软件尽在眼前——这就是云计算”。

当然了,本来“云计算”就是一个很广的问题,这样的解释无非是拿出其中之一的应用场景作类比。但是它能帮助普通人更好的理解。
我觉得这是一个非常有趣的过程:用跨界思维,用拟物或拟人的方式,去提炼简化一些看起来很复杂、枯燥的技术关键词。


Docker是什么?

回归正题,我们讨论Docker。估计喜欢浏览技术新闻资讯站的同学,都会知道Docker——传说中改变世界的东西,它改变了应用的部署运维。那么Docker是什么?来看看百度百科:

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。


当初,看完它的解释后,我的第一反应依旧是懵逼,因为它跟我们脑海中常见的物理机、虚拟机的概念相比,是一种未曾想象过的新事物。
鉴于所在工作环境周围,还没见过应用Docker在开发环境的同学(希望大牛云集的项目不要鄙视),而我又觉得用通俗化的思路去解释Docker思维是有价值的一件事,这也是本文的成文目的。

2.png

Docker图标,小鲸鱼

这是Docker的官方图标——一只大鲸鱼,上面有各种各样的集装箱;鲸鱼就像一个操作系统,上面装着各种各样的集装箱——软件。


也许你会问,这不跟我们iPhone应用一样吗?手机操作系统(鲸鱼),里面有各种各样的App(集装箱)。

但是,仔细想想,iPhone上的App,上能运行吗?——不行。因为iPhone使用IPA格式的App包装方法,而Android使用APK格式的App包装方法,两者部署上是非常的不一样的。


能不能在Android上,运行iPhone应用,而又不使用损耗资源的虚拟机技术? 这就是Docker——它应用在PC平台上的,可以让不同的操作系统平台,占用很少的资源,运行同样的软件程序。

3.png


它就像一个提供开发型软件的应用商店。以往,我们需要安装MySQL数据库,我们首先要想,我的操作系统是Windows?我的CPU是64位? 然后我们找到了MySQL Windows 64位版本进行下载,然后开始安装,安装在C盘?安装完成后,把数据库账号密码设置好?

而在Docker时代,我们只需要下载MySQL的Docker镜像安装就可以了。

这个思路推而广之,Android上利用Docker运行iPhone应用什么时候可以做到?这是技术上可行的,但这里不作过多幻想了。

Docker不是什么新生事物,早在2013年就诞生了,而它的核心技术cgroup早在2006年就写进Linux内核了,直到这2年,才渐渐开始广泛的应用。
Docker常见的场景,是部署和运维。今天,我们抛开技术细节、理论、运维需求,简单谈谈Docker怎么应用到我们日常游戏开发环境当中,并让团队的工作流程起到什么样的优化。

快速搭建MySQL+Redis开发环境
Laradock是一个PHP的Docker开发环境,使用它可以极其方便的快速搭建PHP开发环境。 它不但包含了PHP语言执行环境,还包括了一系列相关工具,其中包括我们非常常用的MySQL、Redis。

在Laradock的官方文档中,就有这样的一句话:Use Docker first and learn about it later.

先使用Docker,然后再学习它。

是的,先使用它,然后再深入学习Docker的一些很原理,一个自上而下的学习过程,可以让你更加快速的理解和应用Docker。应用Laradock是一个很好的Docker学习起点。

要使用Laradock,首先你得安装Docker。 一般有可以选择下载Windows版Docker

或下载Mac版Docker,跟着安装步骤安装即可。

而在国内,访问Docker的镜像仓库非常的慢,因此,需要设置国内的加速镜像仓库(这里使用DaoCloud)。

4.png

小鲸鱼托盘图标


安装好Docker以后,会有小鲸鱼的图标出现在系统托盘上。右击出现菜单(macOS系统则是左击),并选择“Settings”。

5.png


Docker加速器
Windows环境时,选中“Docker Daemon”界面,往"registry-mirrors"字段里添加镜像仓库的地址。

为什么要配置镜像仓库地址?像前面所说的,Docker有点像应用商店——把需要的开发软件,下载并安装。因此镜像仓库(Docker Hub)上储存着各种各样的“镜像”,可理解成别人预先制作好的开发软件。包括我们常见的MySQL、CentOS,其官方都会维护一份Docker镜像。


使用Laradock,你可以使用它在GitHub上托管的源码:

[AppleScript] 纯文本查看