Docker容器在AWS VPC中,好主意还是不好?

我想知道这是否是一个好主意?

我有一个几个Java服务,现在在aws vpc不同的框中运行。 最近我读了Docker,觉得它真的很棒。 所以我的问题是,如果这是一个好主意,用泊坞箱replace这些当前的箱子,并把我的Java服务上面呢? 当然还是在vpc中。

我能够想象的最大好处是可以节省我们在testing集成和debugging等方面所花费的工作量。

但是我担心类似的事情

性能损失(如果有的话)? networkingconfiguration? 服务状态监控?

我真的是docker工人的新手,所以请指点一下你认为可能有用的任何资源。

容器的性能非常接近裸机(或者在这种情况下,由于您将运行在虚拟机上)。

特别:

  • 在卷上,磁盘I / O性能是本地的;
  • 在卷之外,打开文件时会有一个小小的开销,而在原始图像中对文件进行第一次更改时(文件被复制到RW层)会有一个额外的开销,但在此之后,性能是原生的;
  • networking连接经过一个额外的NAT层,这应该等于<< 1ms(而不是0.01到0.1ms),直到你获得每秒1000个请求。 那么你可以通过像Pipework这样的工具绕过NAT层;
  • CPU性能是原生的;
  • 内存性能默认是本机的; 但如果启用内存记帐+限制,则会对内存密集型工作负载产生影响(几%,高达5-10%,这会大大增加和减less其内存使用量)。

状态监测应该与普通应用程序完全一样。

networkingconfiguration:如果您的应用程序公开众所周知的TCP端口,那么使用Docker端口映射function将会很好。 如果你需要大范围的TCP端口或dynamic分配端口,上述的Pipework将会有所帮助。

不要犹豫,如果你有其他问题! 我们还有一个IRC频道(Freenode上的#docker)和一个邮件列表(Google群组中的docker-user)。