1
zhigang1992 2014-08-15 21:23:09 +08:00 via Android
哈哈哈哈,我不知道~
|
2
CMGS 2014-08-15 21:27:38 +08:00
不一样。。。简单的讲是提供了一个数据和代码分离的运行时环境,又隔离了宿主和应用本身,方便快速部署。我们现在写的PaaS就是围绕Docker在做的,已经丢Github的 Coresys 有这么几个仓库恩- -
github.com/CMGS/levi github.com/CMGS/lenz github.com/CMGS/bott |
3
zhigang1992 2014-08-15 21:28:55 +08:00 via Android 1
嗯,docker可以很方便的build CI。 每一个镜像一个img. 放在center repo里面。方便部署
|
5
CMGS 2014-08-15 21:54:48 +08:00
@aisensiy 我个人是这样理解的啊,docker的最佳实践是一个container只跑一个任务,对于传统img打包分装部署而言,一个完整的环境包含了各种各样的服务在一起,这就有了数据的依赖。而docker的这种做法就强制分离了数据依赖这样- -
the concept that Docker containers were designed to be small, usually running just a single process. 这也是为何docker极其轻量,并且创建销毁是一件很轻松的事 |
6
zsz 2014-08-15 22:06:58 +08:00
例如:你的操作系统里面安装了50个软件后,直接把整个操作系统导出一个Image文件,打包带走,到另一台安装了docker服务的机器上直接导入这个image启动运行。
|
7
zjgood 2014-08-15 23:01:18 +08:00 via Android
docker确实极易部署和迁移,但是坑多且深。。我被坑过一次
|
8
halfbloodrock 2014-08-15 23:44:58 +08:00
|
9
newtonisaac 2014-08-15 23:54:47 +08:00
@zsz can't agree more
|
10
aisensiy OP @CMGS 一个 container 跑一个任务,那就是说 container1 是 mysql container2 是 web。那么 container2 就要访问 container1 的某个端口?那我如果还有很多其他的依赖 那岂不是一次要装5 6 个 container 了 那...我就要有一堆 Dockerfile ?
|
11
CMGS 2014-08-16 00:30:23 +08:00 1
@aisensiy 正是如此,container2也可以通过link的方式link进container1,你在单机的视角来看是很多Dockerfile,起很多container,似乎麻烦了点。但是从多机集群的角度来看,麻烦一次无差别异构底层系统拧过去就能启动……诱惑太大了- -
|
12
aisensiy OP @CMGS 哦 我现在想到的就是我可不可以用这个做快速的小规模项目的部署...可能没考虑你说的那些...之前用过 chef 但是感觉其实也挺麻烦的
|
13
lightening 2014-08-16 07:24:29 +08:00 1
@aisensiy 我觉得 Docker 不适合你情况。
|
14
simapple 2014-08-16 08:03:11 +08:00 1
怎么方便怎么用,集成在一起可以,将一个业务拆分成多个容器示例也可以,如果docker现在面临的挑战就是 如何协调大规模业务的分布式容器协调运作,想你这样的应用,推荐使用fig,来管理
|
15
destec 2014-08-16 09:17:09 +08:00 via Android 1
感觉Vagrant适合你。
|
16
ddzz 2014-08-16 10:03:36 +08:00 1
只用两三个VPS的个人站长貌似用不到这玩意啊
|
17
aisensiy OP |
19
zsz 2014-08-16 11:59:29 +08:00 1
@aisensiy 可以在一个container中启动多个服务,使用脚本和supervisor控制就可以,这样就能在单个container中部署小型应用,这是我前些天写过的一个用docker部署个人网站的方法
http://my.oschina.net/hopez/blog/283713 要做的基本上就是把应用安装在container中,mysql的数据盘独立出来(也可以与应用安装在一起), 迁移的时候导出image,把mysql的数据目录打包,到新的机器上导入,并重新解包mysql的数据目录就ok。 |
20
aisensiy OP @zsz 就是先 pull 一个 ubuntu 然后把所有的东西在里面准备好 然后把这个 commit 并且 push 到 docker index 以后就可以直接 pull 之后部署了?
|
23
zjgood 2014-08-17 13:43:35 +08:00 via Android
@holsety 我也不清楚,我在docker创建的容器里准备编译安装phpng,到最后会报system error,且其默认的系统模板删减了很多他认为不必要的东西。。。你需要自己修改官方模板
|
24
zjgood 2014-08-17 13:45:56 +08:00 via Android
@holsety 也就是说docker创建的Ubuntu和真正的Ubuntu还是有很大区别的,否则我编译phpng就不会报不明错误了,configure通过,make时,docker日志提示系统错误
|
25
aisensiy OP 到目前为止我觉得我的下一次部署 vps 估计还是在有 shell 辅助的前提下一个一个装...
|