八种最常见Docker开发模式

  categories:linux资料  tags:  author:
Docker已迅速成为本人最喜欢的基础工具之一,以便构建可重复软件产品,从而带来尽可能静 态的服务器环 境。我在本文中将概述我在使用Docker的过程中开始反复出现的几种模式。我不指望它们会带来多少新奇或惊喜,但希望其中一些有用,我也很想听听各位在 使用Docker过程中遇到的模式。

八种最常见Docker开发模式 别说你还不知道

Docker已迅速成为本人最喜欢的基础工具之一,以便构建可重复软件产品,从而带来尽可能静态的服务器环境。

我在本文中将概述我在使用Docker的过程中开始反复出现的几种模式。我不指望它们会带来多少新奇或惊喜,但希望其中一些有用,我也很想听听各位在使用Docker过程中遇到的模式。

我试用Docker的基础是保持在卷中持续的状态,那样Docker容器本身可以随意重建,而不会丢失数据(除非我改动容器状态,而不更新Docker文件(Dockerfile)的状态,而经常重建容器有助于改掉这个坏习惯)。

下面的示例Docker文件都专注于此:构建容器――在这种环境下,容器本身可以随时更换,没必要考虑它。

1. 共享基础容器

Docker 鼓励“继承”,所以这应该并不奇怪――继承是高效使用Docker的一个基本方面,尤其是由于它有助于减少构建新容器所需的时间,因为 没必要那么频繁地重新执行步骤。Docker会试图将中间步骤放入到缓存,它在这方面做得很好――有时太好了,不过要是没有明确注明,也很容易错过共享的 机会。

将我的各种容器迁移到Docker上时明显出现的事情之一是,存在太多的冗余设置。

我为预计部署到任何地方的大多数项目运行单独的容器,至少它需要任何长时间运行的进程,或者需要“标准”程序包集之外的任何特定程序包时,是这样,因而我有好多容器,而程序包迅速变得越来越多。

等到我考虑迁移时,就试图在Docker中运行“一切”(包括我依赖的少数几个桌面应用程序),以便让我的mybase环境完全可以随意使用。

于是我很快开始将我的基本设置提取到基础容器,用于众多用途。下面是我当前的“devbase”Docker文件:

  1. FROM debian:wheezy
  2. RUN apt-get update
  3. RUN apt-get -y install ruby ruby-dev build-essential git
  4. RUN apt-get install -y libopenssl-ruby libxslt-dev libxml2-dev
  5. # 用于调试
阅读全文


快乐成长 每天进步一点点