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

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

之前看 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

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