部署 有没有日常开发甚至部署中使用 docker 的?

hick · 2014年05月18日 · 最后由 blackanger 回复于 2014年05月20日 · 4571 次阅读

之前看 docker 官方文档还有提醒 not ready for production enviroment. 看起来比较理想, 是不是实际运营使用的还不多?

陆续关注蛮久了, 大概理解 docker 利用 cgroup 等实现资源隔离, 但是貌似跟虚拟机不一样, 并不能解决公共库依赖等的问题?

之前用 vagrant 感觉还可以, 初始化 vagrant 运行环境有些麻烦, 完了以后也多少遇到过各种问题, 作为搭建统一的开发环境还是有些合适, 整体感觉还是比较重, docker 看起来就很轻量.

你有好几个问题,一一作答 有没有日常开发甚至部署中使用 docker 的? 答:有啊,百度云

看起来比较理想, 是不是实际运营运维还比较多? 答:参考百度

但是貌似跟虚拟机不一样, 并不能解决公共库依赖等的问题? 答:你知道 docker 是 layer 层叠加的。公共库依赖这种应用需求并不是它要解决的问题。它的库都是隔离的,你需要分离使用,这也是目前最完美的解决方案。

vagrant 1.6 支持 docker, 可以混合使用,你可以直接混用。

#1 楼 @xds2000 哈哈, 才发现有打错字了, 刚纠正了, 不过不太影响交流. 非常感谢, 也是看到有新闻说 vagrant 1.6 支持 docker , 又重新想认识下 docker .

之前主要是看名字和简单介绍, 当作是轻量级的虚拟机解决方案, 仔细一想才意识到如果制作 image 的母机有的并且被 image 使用的公共库, 如果在部署的目标机器没有, 可能是有问题的.

再次感谢 :plus1:

#1 楼 @xds2000 回答的差不多了。 #2 楼 @hick 目前版本已经 production ready 了。虽然版本号是 0.11.x 但官方已经公示这是 1.0RC 了。

#3 楼 @ashchan 不知道有没有现成的部署镜像?

#4 楼 @xiongxin8802 有不少的。我建了一个 ruby 2.1.2 的:https://index.docker.io/u/ashchan/ruby-2.1.2/

在次基础上做了几个 rails 等得(不过是 private 的)。但其实都很简单,比方说可以写一个用 rails s 跑 rails app 的:

FROM ashchan/ruby-2.1.2
MAINTAINER James Chen <[email protected]> (@ashchan)

RUN apt-get install -y nodejs

ENV RAILS_ENV production
ENV BUNDLE_WITHOUT development

WORKDIR /app

ADD Gemfile /app/
ADD Gemfile.lock /app/
RUN bundle install -j 4

ADD Rakefile /app/
ADD config/ /app/config/
ADD app/assets/ /app/app/assets/
RUN bundle exec rake assets:precompile

ADD . /app

EXPOSE 3000

ENTRYPOINT ["bundle", "exec"]
CMD ["rails", "s"]

#6 楼 @ashchan 恩,谢谢你了,我试试这个

百度开放云的 BAE 用的就是 Docker,如何运行 Ruby,可以看这个http://ruby-china.org/topics/19008

需要 登录 后方可回复, 如果你还没有账号请 注册新账号