容器化的七个原则

1、不要在容器中存储数据

由于容器是一次性的,当容器被停止、销毁或替换时,应用在容器中存储的数据同样会被销毁。

如果应用需要存储数据,需存储在共享数据存储中。

2、不要发布两份应用

每个容器中只能部署运行一个应用,不能部署多个应用到一个容器中。

3、清除不必要的包和文件

容器的一个显著特点是秒级启动,一旦制作了一个超大的镜像将难以分发。在镜像中应该确保仅有运行应用/进程的必需的文件和库存在,其他不必要的包、文件等建议应用打包前进行清除。

4、不要在容器中运行多个进程

容器能完美地运行单个进程(http守护进程,应用服务器,数据库),但是如果你不止有一个进程,管理、获取日志、独立更新都会遇到麻烦。

5、不要在镜像中存储凭据、使用环境变量

不要在应用中写死服务的IP和端口(如数据库IP和端口、服务接口IP和端口),采用域名的方式。

环境变量应该以传参的形式传入容器,而不是直接写死在容器中,需要的环境变量可写入系统集成文档中。

6、使用非root用户运行

docker容器默认以root运行。

随着docker的成熟,越来越多的安全默认选项变得可用。请求root是危险的,可能无法在所有环境中可用。所以镜像应该使用USER命令来指令容器以一个非root用户来运行。

7、不要依赖IP地址

每个容器都有自己的内部IP地址,如果你启动并停止它地址可能会变化。

如果应用或微服务需要与其他容器通讯,由于容器IP是不固定的,应用依赖IP地址将无法与其他容器通讯,可以选择更合适的方式与其他容器进行通讯。

以上来自社区会员分享

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181105B09O2Q00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券