docker flask mysql_使用Dockerfile构建镜像,搭建Flask + MySQL应用

本文介绍了如何使用Dockerfile来构建一个包含Flask后端和MySQL数据库的应用镜像。首先解释了Dockerfile的作用和优势,接着通过实战演示了创建Dockerfile的步骤,包括配置MySQL容器、编写Dockerfile以及构建和运行容器。Dockerfile中包含了从基础镜像选择、代码复制、安装依赖到设定启动命令等步骤。
摘要由CSDN通过智能技术生成

Dockerfile 是什么镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么之前提及的无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Dockerfile。

为什么要用 Dockerfile

Dockerfile的好处实在是太多了,除非你真的能很容易的找到一个满足你一切需求,没有你不想要的层,非常好用的镜像。当你想要追求以上的条件时,就可以开始考虑用Dockerfile构建属于自己的镜像了。

Dockerfile 基本指令

Dockerfile功能很强大,它提供了十多个指令,详细可参考Dockerfile 指令详解

Dockerfile 实战

下面将以构建一个后端web应用为例,学习Dockerfile的使用。这个基本的web应用包括:利用Flask框架编写的后端应用

MySQL作为数据库

因此,分别需要两个个容器:运行后端程序的容器

数据库容器

启动 MySQL容器

对于数据库容器,可以直接使用官方的mysql镜像。例如:1sudo docker pull mysql:5.7

如果配置了国内官方镜像仍然无法拉取,可以使用别的镜像库,例如DaoCloud,网易等:1sudo docker pull daocloud.io/library/mysql:5.7.4

然后运行这个容器,配置端口映射。由于我本地3306已经被使用,于是配置3307端口来映射:1

<
1. 创建 Dockerfile 文件 Dockerfile 是编写 Docker 镜像的脚本文件。创建 Dockerfile 文件,文件名为 Dockerfile ,在文件中编写如下内容: ``` # 指定所使用的基础镜像 FROM ubuntu:latest # 安装 Java 环境 RUN apt-get update RUN apt-get install -y openjdk-8-jdk # 安装 MySQL 数据库 RUN apt-get install -y mysql-server # 安装 Flask 应用所需的依赖包 RUN apt-get install -y python3 python3-pip RUN pip3 install flask pymysql # 拷贝 Flask 应用代码到镜像中 COPY app.py /app/ COPY templates /app/templates/ COPY static /app/static/ # 暴露 5000 端口 EXPOSE 5000 # 启动 Flask 应用 CMD ["python3", "/app/app.py"] ``` 2. 构建镜像 在命令行中进入 Dockerfile 所在的目录,执行如下命令来构建镜像: ``` docker build -t my-flask-app . ``` 其中, my-flask-app 是镜像的名称, . 代表 Dockerfile 所在的目录。 3. 运行容器 运行容器时,需要将 Flask 应用代码和MySQL数据分别挂载到容器中,以及暴露端口。运行如下命令启动容器: ``` docker run -d -p 5000:5000 \ -v /path/to/flask/app:/app \ -v /path/to/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ --name my-flask-container my-flask-app ``` 其中, /path/to/flask/app 是 Flask 应用代码所在目录的路径, /path/to/mysql/data 是 MySQL 数据库所在目录的路径。MYSQL_ROOT_PASSWORD 是 MySQL 数据库的密码。 my-flask-container 是容器的名称, my-flask-app 是镜像的名称。 运行以上命令后,就可以在浏览器中访问 Flask 应用了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值