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)。