flask(二)虚拟机Ubuntu 系统中docker运行flask

本文详细介绍Docker安装配置及Flask应用镜像构建过程,包括依赖管理、Dockerfile编写,并分享了容器运行及接口测试技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、docker安装

2、flask demo生成镜像 

导出项目依赖requirement.txt


pip freeze > requirements

 会将不相关的依赖包一起导出。

导出纯净依赖requirement.txt

安装:pip install pipreq  

导出命令:pipreqs ./

出现GBK编码出错,使用:pipreqs ./ --encoding=utf8 命令,即可导出项目纯净的依赖包。

编辑Dockerfile文件

        

#基础镜像

FROM ubuntu:latest


#代码添加到code文件夹

ADD ./test  /project


# 设置project文件夹是工作目录

WORKDIR /project

# 安装依赖
RUN apt-get update -y &&apt-get install -y python3-pip python3-dev

RUN pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

CMD ["python3","/project/app.py"]

压缩文件上传到Ubuntu系统中

生成镜像

docker build -t flaskdemo .

镜像名只能小写

查看镜像

        docker images 或docker image ls

3、docker运行

运行容器

查看存在容器

        docker ps -a

查看运行容器

        docker ps

 进入容器:查看、添加依赖

        sudo docker exec -it 容器ID /bin/bash 

退出容器

        exit

更新容器:容器内部新增依赖时,退出后需要更新。

docker commit -m="has update" -a="matt"(作者) e218edb10161(容器ID ubuntu:v2(镜像名)

停止容器运行

        docker stop 容器ID

启动容器

        docker start 容器ID

4、接口测试

外部局域网postman测试ubuntu flask接口:

直接运行python3 app.py

运行显示两个地址: 

虚拟机本地地址:http://127.0.0.1:5000               可访问
虚拟机局域网地址: http://192.168.1.142:5000  可访问

   

docker+flask测试

方法一:

docker run flaskdemo

docker环境下只能通过 172.17.0.3:5000访问接口,本地及外部局域网之间不能访问

方法二:

docker run -d -p  127.0.0.1:5000:5000 --name demo flaskdemo

可以通过本地127.0.0.1:5000及172.17.0.3:5000地址访问,外部局域网之间不能访问

### 安装和配置 Docker 的方法 #### 卸载旧版本 如果系统中存在旧版本的 Docker,则需要先将其卸载。可以运行以下命令来删除旧版软件包及其依赖项[^2]: ```bash sudo apt-get remove docker docker-engine docker.io containerd runc ``` #### 更新系统并设置仓库 更新系统的 APT 包索引,并安装必要的工具以便允许 `apt` 使用 HTTPS 进行通信。 ```bash sudo apt update sudo apt install -y apt-transport-https ca-certificates curl software-properties-common ``` 接着,添加 Docker 的官方 GPG 密钥以及稳定版存储库[^1]。 ```bash curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null ``` #### 安装最新版本的 Docker Engine 再次更新 APT 包索引后即可安装最新的 Docker 引擎。 ```bash sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io ``` 验证 Docker 是否正确安装完成并通过启动服务测试其功能正常与否。 ```bash sudo systemctl start docker sudo systemctl enable docker docker --version ``` #### 配置非 root 用户权限 默认情况下只有超级用户才能执行 Docker 命令。为了方便日常操作,建议创建一个新的 Linux 组并将当前登录账户加入其中[^3]。 ```bash sudo groupadd docker sudo usermod -aG docker $USER newgrp docker ``` 重新加载 shell 或注销再登录使更改生效。 #### 测试环境是否可用 尝试拉取一个简单的容器镜像以确认整个流程无误。 ```bash docker run hello-world ``` 以上步骤完成后即代表已经成功设置了基本的工作环境用于后续开发或者部署应用项目等工作负载之上。 #### 利用 Dockerfile 构建自定义镜像 当需要频繁重复某些特定任务时,可以通过编写 Dockerfile 文件来自动化这一过程。例如下面这个例子展示了如何基于官方 Python 库创建包含 Flask Web 框架的应用实例: ```Dockerfile FROM python:3.9-slim-buster WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD ["python", "./your-application.py"] ``` 构建上述示例中的镜像文件需要用到如下指令: ```bash docker build -t my-python-app . ``` 最后不要忘记开启 SSH 服务以便远程管理虚拟机上的资源访问需求[^4]. ```bash sudo apt-get install openssh-server ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HySmiley

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值