1. docker部署最佳实践

1.1. 如何让你的镜像更小

  • 选择合适的基础镜像,如果你需要jdk环境,建议直接选择openjdk作为基础镜像,而不是选择ubuntu镜像后按照openjdk在dockerfile中。

  • 使用多级构建,多条相同命令合并为一条命令,减少构建层级。

  • 如果多个镜像有大量相同的功能,可以考虑根据相同的功能创建一个基础镜像。

  • 为了保持生产镜像的精简,你可以创建一个精简镜像,以精简镜像为基础镜像安装调试工具包。

  • 构建镜像,总是使用tags进行编写描述信息。

1.2. 怎么让数据持久化

  • 避免使用容器的存储,使用卷或者绑定挂载功能。

  • 开发期间可以使用bind mount来挂载需要的挂载二进制文件到容器中,生产环境请使用卷。

  • 对于生产,加密重要信息,使用configs配置非机密配置文件。

1.3. 尽可能使用swarm服务

1.4. 使用CI/CD去测试和部署

  • 当您检查对源代码管理的更改或创建拉取请求时,请使用Docker Cloud或其他CI / CD管道自动构建和标记Docker镜像并对其进行测试。

1.5. 开发和生产采用不同环境

  • 开发采用bind mounts ,生产采用卷。

  • 开发不用关心时间同步信息,生产环境一个集群确保采用同一个ntp server。