测试必会 | 通过容器化 Python Web 应用掌握 Docker 容器核心技能

本文通过一个Python Web应用案例,详细介绍了Docker容器的核心操作,包括构建镜像、运行和管理容器、资源限制、共享文件、镜像分享以及保持容器始终运行。读者将学习到如何使用Dockerfile创建镜像,如何启动和管理容器,以及如何进行资源限制和持久化数据。此外,文章还涵盖了容器与宿主机之间的文件共享和Docker容器的生命周期管理。
摘要由CSDN通过智能技术生成

本篇文章将通过一个非常典型的 Python Web 应用作为案例,讲解 Docker
容器使用的主要场景。包括构建镜像、启动镜像、分享镜像、在镜像中操作、在镜像中挂载宿主机目录、对容器使用的资源进行限制、管理容器的状态和如何保持容器始终运行。熟悉了这些操作,你也就基本上摸清了
Docker 容器的核心功能。

前期准备:需要一台已经安装了 Docker 的 Linux 虚拟机。

构建一个镜像

首先我们准备一个应用。新建一个本文文件,起名叫 app.py,里面写入下面的内容,实现一个简单的 web 应用:

        from flask import Flask    
            import socket    
                import os    
                      
                          app = Flask(\_\_name\_\_)    
                                
                                    @app.route('/')    
                                        def hello():    
                                             html = "<h3>Hello {name}!</h3>" \    
                                                  "<b>Hostname:</b> {hostname}<br/>"     
                                                       return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname())    
                                                             
                                                                 if \_\_name\_\_ == "\_\_main\_\_":    
                                                                      app.run(host='0.0.0.0', port=80)    

在这段代码中,使用 Flask 框架启动了一个 Web 服务器,而它唯一的功能是:如果当前环境中有 “NAME” 这个环境变量,就把它打印在 “Hello”
后,否则就打印 “Hello world”,最后再打印出当前环境的 hostname。

这个应用的依赖文件 requirements.txt 存在于与其同级的目录中,内容是:

        cat requirements.txt    
            Flask    

将这样一个应用在容器中跑起来,需要制作一个容器镜像。Docker 提供了一种 Dockerfile
文件,来描述镜像的构建过程。下面的代码存在于与上面的应用(app.py)同级目录下的 Dockerfile 中。

        \# 使用官方提供的 python:3.6-alpine 镜像,作为我们这个镜像的基础镜像,这样我们的镜像就有了 python3.6 环境    
            FROM python:3.6-alpine    
                  
                      \# 将工作目录切换为 /app    
                          WORKDIR /app    
                                
                                    \# 将当前目录下的所有内容复制到镜像的 /app 下    
                                        ADD . /app    
                                              
                                                  \# 使用 pip 命令安装这个应用所需要的依赖,RUN 指令就是在容器里执行 shell 命令的意思。    
                                                      RUN pip install --trusted-host pypi.python.org -r requirements.txt    
                                                            
                                                                \# 允许外界访问容器的 80 端口    
                                                                    EXPOSE 80    
                                                                          
                                                                              \# 设置环境变量    
                                                                                  ENV NAME World    
                                                                                        
                                                                                            \# 设置容器进程为:python app.py,即:这个 Python 应用的启动命令    
                                                                                                CMD \["python", "app.py"\]    

这个 Dockerfile 文件的内容,描述了我们所要构建的 Docker 镜像。Dockerfile 中每一行都是按顺序处理的。这个 Dockerfile
中用到的指令的具体含义已经在以注释的方式写在了 Dockerfile 中。</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值