1.2 使用容器技术构建应用

在讲解应用部署之前,我们先来回顾一下容器相关的知识,因为他是我们接下来编排的主要对象。

在日常的运维过程中,我们通常会遇到这样的需求,某个服务需要运行在不同的中间件版本之下,但是使用当前的包管理程序比如yum、apt-get很难在同一个系统中同时安装两个不同版本的中间件。而容器的出现很好的为我们解决了这个问题,通过将我们的代码和中间件一起打包,然后将打包的镜像运行在同一操作系统下,就很简单的解决了我们上面遇到的问题。

接下来我们一起打包一个Flask框架的Python Web应用。

讲解 Dockerfile 文件

v1版本,通过socket通信

  • 查看应用代码
  • 查看应用的uwsgi配置
  • 应用依赖的第三方库requirements.txt
  • 全局uwsgi配置
  • Dockerfile

v2版本,通过监听端口通信

  • 查看应用代码
  • 全局uwsgi配置

镜像打包

v1版本,通过socket通信

  1. docker build -t findsec/hello:v1 .
  2. docker login
  3. docker push findsec/hello:v1

v2版本,通过监听端口通信

  1. docker build -t findsec/hello:v2 .
  2. docker login
  3. docker push findsec/hello:v2

运行容器

  1. docker run -ti -d --name flask findsec/hello:v1

进入容器

  1. docker exec -ti flask bash