Docker Compose允许您构建多容器Docker应用程序。如果您在微服务项目中工作,而在该项目的不同部分有不同的节点,那么Docker Compose正是您所需要的。使用Docker Compose,您可以在不同的Docker容器上处理项目的不同组件,并将它们组合以创建单个应用程序。
在本文中,我们将讨论如何构建使用Python模块的Flask应用程序,并尝试使用Docker Compose在Docker容器中运行它。
首先,您需要在本地计算机上安装Docker Compose。要安装Docker Compose,可以使用以下两种方法之一-
使用包管理器
sudo apt−get install docker−compose
从官方资料库
您需要curl才能从官方存储库下载文件。
sudo apt−get install curl sudo curl −L "https://github.com/docker/compose/releases/download/1.24.0/docker−compose−$(uname −s)−$(uname −m)" −o /usr/local/bin/docker−compose sudo chmod +x /usr/local/bin/docker−compose
上面的命令序列是从apt软件包管理器下载并安装curl。使用curl之后,它会从官方github存储库中下载最新版本的Docker Compose,然后使用chmod命令,向用户授予可执行权限。
在本地计算机上下载Docker Compose之后,按如下所示创建目录结构。
创建一个名为“ application”的文件夹,并在其中创建另一个名为“ web”的文件夹,其中将包含我们所有的flask文件。
移至“ web”目录并创建一个名为“ app.py”的python文件。在文件内创建一个简单的flask应用程序,或粘贴以下代码。
#Import the flask module from flask import import Flask #Create a Flask constructor. It takes name of the current module as the argument app = Flask(__name__) #Create a route decorator to tell the application, which URL should be called for the #described function and define the function @app.route('/') def nhooo(): return "Welcome to nhooo" #Create the main driver function if __name__ == '__main__': #call the run method app.run(debug=True,host='0.0.0.0')
上面的flask代码创建了一个简单的flask应用程序,并显示“ Welcome to nhooo”。创建python文件后,使用以下代码创建dockerfile。
FROM python:3 RUN apt−get −y update RUN apt−get install −y pip3 build−essential COPY . . RUN pip3 install −r requirements.txt ENTRYPOINT ["python3"] CMD ["app.py"]
上面的dockerfile创建了一个python 3映像,运行更新并安装了必要的python软件包。然后,它使用下面提到的requirements.txt文件来安装Flask库,并将入口点定义为我们刚刚在app.py文件中创建的flask应用。
在Web文件夹中创建一个名为requirements.txt的文件,然后粘贴以下内容。
Flask
现在,转到名为application的父目录,并创建一个包含以下内容的docker-compose.yml文件。
web: build: ./web ports: − "5000:5000" volumes: − .:/code
上面的文件从“ web”目录中的dockerfile构建映像,然后将5000端口暴露给容器的5000端口。然后将当前目录挂载到Docker容器上的/ code。
现在,您可以使用以下命令从名为“ web”的目录构建docker映像“ application”。
sudo docker−compose up
总而言之,在本文中,我们了解了如何安装docker compose,构建一个简单的flask Web应用程序,创建一个dockerfile来构建映像,然后进行部署,然后使用Docker Compose将应用程序作为服务部署。上面提到的步骤是使用Docker Compose创建Web应用程序的最简单方法。