了解Docker最佳实践

我知道Docker是一个全新的可能性世界,在networking上很好地呈现,但是这些新的select带来了我想知道的新风险。 解决这些风险的最佳实践是经验带来的一件事,但由于我缺乏这方面的经验…

以下是应用程序dockerization的几个方面,它根据实现select呈现风险:

1.图像专业化和产业化

我明白一个正在运行的Docker应用程序意味着2个部分:

  • 不变的部分:Docker Image
  • 可变部分:所有用户添加的文件和元数据

我的问题是:为特定的部署(客户,环境,configuration)专门化图像的正确方法是什么? 在哪里存储可变部分以确保更多的进化和隔离/安全性?

2.应用程序生命周期pipe理

假设我开发了MyApplication的Docker镜像

  • 在某些时候,我部署了v1,这个版本将会持续一段时间,存储在我的Docker容器中的特定的用户添加的文件和元数据
  • 在某个时候,我完成了V2开发,我想更新现有的V1

什么是正确的程序/devise/实践,以确保考虑到干净和容易的移民

  • 我的图像v2可能需要比我的v1更多的参数
  • 我想要保留所有用户添加的文件或元数据

3.多个集装箱通信和安全

我想要build立一个安全的集装箱间通信的多容器部署。

  • 在所有这些容器之间处理networkingstream量的正确方法是什么?
  • 因为我想设置x509证书,CN必须匹配主机名…如何处理所有这些容器?
  • Docker能处理某种VLAN来定义几组容器之间的安全层吗?

谢谢!