
# 分析应用
应用在容器化改造前，您需要了解自身应用的运行环境、依赖包等，并且熟悉应用的部署形态。需要了解的内容如[表1]。
 表1了解应用环境 
| 类别   | 子类   | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|
| 运行环境 | 操作系统 | 应用需要运行在什么操作系统上，比如centos或者Ubuntu。 本例中，应用需要运行在centos:7.1操作系统上。                                                                                                                                                                                                                                                                                                                                                                                   |
| 运行环境 | 运行环境 | java应用需要jdk，go语言需要golang，web应用需要tomcat环境等，且需要确认对应版本号。 本例是tomcat类型的web应用，需要7.0版本的tomcat环境，且tomcat需要1.8版本的jdk。                                                                                                                                                                                                                                                                                                                                  |
| 运行环境 | 依赖包  | 了解自己应用所需要的依赖包，类似openssl等系统软件，以及具体版本号。 本例不需要使用任何依赖包。                                                                                                                                                                                                                                                                                                                                                                                           |
| 部署形态 | 周边配置 | MongoDB：本例中MongoDB和Tomcat应用是在同一台机器中部署。因此对应配置可以固定，不需要将配置提取出来。                                                                                                                                                                                                                                                                                                                                                                                                                           |
| 部署形态 | 周边配置 | 应用需要对接哪些外部服务，例如数据库，文件存储等等。 应用部署在虚拟机上时，该类配置需要每次部署时手动配置。容器化部署，可通过环境变量的方式注入到容器中，部署更为方便。 本例需要对接MySQL数据库。您需要获取数据库的配置文件，如下"服务器地址"、"数据库名称"、"数据库登录用户名"和"数据库登录密码"将通过环境变量方式注入。 ``` url=jdbc:mysql://服务器地址/数据库名称       #数据库连接URL username=****                                #数据库登录用户名 password=****                                #数据库登录密码 ```                      |
| 部署形态 | 自身配置 | 需要理出应用运行时的配置参数，哪些是需要经常变动的，哪些是不变的。 本例中，没有需要提取的自身配置项。 说明： 为确保镜像无需经常更换，建议针对应用的各种配置进行分类。 - 经常变动的配置，例如周边对接信息、日志级别等，建议作为环境变量的方式来配置。  - 不变的配置，可以直接写到镜像中。   |
   
