下面我将为您提供windows下Docker部署Flask的详细教程,包含两个示例说明。
环境准备
首先,我们需要在windows系统上安装好以下的环境,才能顺利地进行后续的操作:
* Docker Desktop for Windows,可以通过官方网站下载安装包并安装 https://www.docker.com/products/docker-desktop
* 一个文本编辑器,比如Notepad++或者VSCode
* 一个浏览器,比如Firefox或Chrome
* 一个命令行终端,比如PowerShell或Git Bash
示例1:使用Docker容器部署Flask应用
1.创建Flask应用
创建一个新的文件夹,在文件夹中创建一个名为app.py的python文件。在app.py中输入以下代码:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "Hello, World!"
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')
这是一个简单的Flask应用,当访问http://localhost:5000/时,会返回一条Hello, World!的消息。
2.编写Dockerfile
在上面创建的文件夹中,创建一个名为Dockerfile的文件。在Dockerfile中输入以下代码:
FROM python:3.8-slim-buster
RUN pip install flask
WORKDIR /app
COPY . .
CMD ["python", "app.py"]
这个Dockerfile使用Python3.8的官方映像作为基础,安装Flask,将当前目录中的所有文件复制到容器中的/app目录中,并启动Flask应用。
3.构建Docker镜像
在命令行窗口中,进入到上面创建的文件夹中,输入以下命令构建镜像:
docker build -t my-flask-app .
其中,-t参数指定了镜像的名称(my-flask-app),.表示当前目录是上下文。
4.运行Docker容器
构建成功后,输入以下命令启动Docker容器:
docker run -p 5000:5000 my-flask-app
其中,-p参数将容器内的5000端口映射到主机的5000端口上,my-flask-app是镜像的名称。
5.测试应用
访问http://localhost:5000/,会看到Hello, World!的消息。这个消息是由Flask应用生成的,已经成功地部署在了Docker容器中。
示例2:使用Docker容器部署一个Flask应用和MySQL数据库
1.创建Flask应用
在上面的示例中,我们已经创建了一个Flask应用。这里不再重复,直接使用示例1中的代码。
2.创建MySQL容器
在命令行中,输入以下命令拉取MySQL官方镜像并启动容器:
docker run --name my-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:8.0
其中,-d参数表示以后台方式启动Docker容器,-e参数指定了MySQL的root用户密码(my-secret-pw),mysql:8.0是MySQL的官方镜像。
3.编写Dockerfile
在上面创建的文件夹中,创建名为Dockerfile的文件。Dockerfile的内容如下:
FROM python:3.8-slim-buster
RUN pip install flask mysql-connector-python
WORKDIR /app
COPY . .
CMD ["python", "app.py"]
这个Dockerfile与示例1基本相同,只多了mysql-connector-python这个Python库的安装。
4.构建Docker镜像
执行以下命令构建Docker镜像:
docker build -t my-flask-app .
5.运行Docker容器
这次我们需要把容器连接到MySQL数据库中,输入以下命令运行Docker容器:
docker run -p 5000:5000 -e MYSQL_USER=myuser -e MYSQL_PASSWORD=mypassword -e MYSQL_HOST=my-mysql --link my-mysql:mysql my-flask-app
其中,-e参数指定了MySQL数据库的用户名、密码和主机地址,--link参数指定了将容器连接到my-mysql这个容器中的MySQL实例。
6.测试应用
访问http://localhost:5000/,如果看到Hello, World!的消息,那么就表示Flask应用已经成功地连接到了MySQL数据库,并且正在运行中。
到这里,我们就完成了在Windows下使用Docker部署Flask应用和MySQL数据库的过程。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:windows下Docker部署Flask的详细教程 - Python技术站