windows下Docker部署Flask的教程

news2024/11/28 20:38:30

Docker默认安装路径是在C盘,Windows中修改Docker**默认安装****路径方法:

1.先创建 D:\Program Files\Docker 目录

2.运行命令,创建链接

mklink /J "C:\Program Files\Docker"  "D:\codeSoftware\Docker"

在这里插入图片描述

3.点击exe安装完成后,查看版本

docker -v

在这里插入图片描述

4.运行docker的hello world

docker run hello-world

在这里插入图片描述

查看镜像

docker images

在这里插入图片描述

5.docker部署flask例子

5.1 新建Flaskdemo

  • 新建虚拟环境
 python -m venv venv
  • 激活
.\venv\Scripts\activate
  • 安装Flask
pip install Flask 
  • app.py代码
from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
    return "hello,learn docker"

if __name__ == '__main__':
    app.run(host="0.0.0.0",port=7001,debug=True)

5.2 创建DockerFile文件

注:放在项目的根目录下,然后根据里面的指令来配置具体项目所需的环境

这里使用的是vscode里面的插件docker

Ctrl+Shift+P,输入docker:add

在这里插入图片描述

即可依据框架选择,然后自动生成

在这里插入图片描述

# For more information, please refer to https://aka.ms/vscode-docker-python
FROM python:3.8-slim

EXPOSE 5001

# Keeps Python from generating .pyc files in the container
ENV PYTHONDONTWRITEBYTECODE=1

# Turns off buffering for easier container logging
ENV PYTHONUNBUFFERED=1

# Install pip requirements
COPY requirements.txt .
RUN python -m pip install -r requirements.txt

WORKDIR /app
COPY . /app

# Creates a non-root user with an explicit UID and adds permission to access the /app folder
# For more info, please refer to https://aka.ms/vscode-docker-python-configure-containers
RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app
USER appuser

# During debugging, this entry point will be overridden. For more information, please refer to https://aka.ms/vscode-docker-python-debug
CMD ["gunicorn", "--bind", "0.0.0.0:5001", "app.app:app"]

本次demo的目录结构

在这里插入图片描述

5.3 构建镜像

docker build -t docker_flask_demo .

docker build命令主要是用于创建镜像,当中的参数-tag-t 代表的是镜像的名字及标签

在这里插入图片描述

5.4 运行容器

使用docker run命令基于镜像运行一个容器

常用的参数有:

  • -d 代表容器在后台运行
  • --name 代表别名
  • -p:用于配置宿主机与容器的端口映射
docker run -d --name flask_demo -p 5001:5001 docker_flask_demo

5.5 访问ipconfig找到虚拟机ip

即可访问部署的服务,或者使用http://localhost:7001/来访问

在这里插入图片描述

6.其他知识点

6.1 启动和停止容器

 docker start 容器id		# 启动容器 

 docker restart 容器id	# 重启容器

 docker stop 容器id	  # 停止正在运行的容器

 docker kill 容器id		 # 强制停止运行的容器

6.2 删除容器

docker rm 容器id

6.3查看容器进程信息

docker top 容器id

6.4删除镜像

docker rmi 镜像id

6.5查看日志

docker logs -f afdf90e5afbd 

6.6 查看容器的信息

docker inspect 容器id

6.7命令列出所有容器

docker ps -a

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/166404.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

logstash 向多目标输出多份日志输出syslog

logstash默认情况下是内置了输入syslog日志的,但是不支持输出syslog,需要输出syslog的情况下,就需要手动安装logstash-output-syslog插件。安装方法如下:下载logstash-output-syslog插件,https://rubygems.org/downloa…

SpringBoot 注册自己的Servlet(三种方式)

SpringBoot 注册自己的Servlet(三种方式) 目录SpringBoot 注册自己的Servlet(三种方式)方法1:使用servlet3.0规范提供的注解方式注册Servlet1,声明servlet及映射2,加上ServletComponentScan 才会扫描加了这个注解运行结…

LeetCode 62. 不同路径

🌈🌈😄😄 欢迎来到茶色岛独家岛屿,本期将为大家揭晓LeetCode 62. 不同路径,做好准备了么,那么开始吧。 🌲🌲🐴🐴 一、题目名称 LeetCode 62. …

蚂蚁智能内容合规产品,提供一站式营销合规管控解决方案

随着互联网服务的不断深化,产品营销的形式从传统文本、长图文,增加到短视频、直播等新媒介形态,展现形式愈加丰富的同时,也为营销宣传内容合规审核带来了诸多难题。如何解决与日俱增的审核量与合规审核人员有限之间的矛盾&#xf…

旧手机闲置?教你用Termux搭建个移动服务器

目录 前言 准备工作 实践 安装Termux: 运行Termux: 环境配置: 效果展示 写在最后 前言 最近偶然看到网上有人用KSWEB搭建本地服务器,于是突发奇想也想在手机中搭建一个node环境试试,趁着周末有空,…

Vue3商店后台管理系统设计文稿篇(五)

记录使用vscode构建Vue3商店后台管理系统,这是第五篇,主要记录Vue3项目路由知识 文章目录一、Vue3路由二、安装Element Plus三、NPM设置淘宝镜像四、Yarn 设置淘宝镜像正文内容: 一、Vue3路由 路由用于设定访问路径, 将路径和组件映射起来&…

【vue系列-06】vue的组件化编程

深入理解vue的组件一,vue组件1,什么是vue组件2,单文件组件和非单文件组件3,非单组件的基本使用4,vue组件命名规范4.1,一个单词组成4.2,多个单词组成5,组件与组件间的嵌套6&#xff0…

Tomcat结构体系

总体结构Tomcat中最顶层的容器是Server,代表着整个服务器,从上图中可以看出,一个Server可以包含至少一个Service,用于具体提供服务。Service主要包含两个部分:Connector和Container。从上图可以看出 Tomcat 的心脏就是…

opencv的mat openvino的tensor libtorch的tensor

opencv的mat 对于矩阵数据,在opencv里面是通过使用mat这个数据结构来实现的,我觉得这个数据结构本身设计是用来做图片的存储,所以很多的教程都是关于三维矩阵的(其中一个维度是channel),关于三维矩阵的定义…

通讯录小练习:柔性数组和文件操作实现

目录 一.程序功能 二.定义关键类型的头文件与枚举的应用 三.封装柔性数组的增容函数与缩容函数 四.添加联系人功能模块 五 .联系人信息打印模块 六. 查找指定联系人的模块 七.删除指定联系人模块 八.修改指定联系人信息模块 九.排序模块 九.文件操作模块 十.通讯录初…

如何实现外网远程登录访问jupyter notebook?

Jupyter Notebook是一个交互式笔记本,本质是一个 Web 应用程序,支持运行 40 多种编程语言,此前被称为 IPython notebook。Jupyter Notebook 便于创建和共享程序文档、支持实时代码、数学方程、可视化和 markdown,应用场景有数据清…

机器学习基础——k-近邻算法概述和简单实现

本章内容 k-近邻分类算法 从文本文件中解析数据 前言 众所周知,电影可以按照题材分类,然而题材本身是如何定义的?由谁来判定某部电影属于哪个题材?也就是说同一题材的电影具有哪些公共特征?这些都是在进行电影分类时必须要考虑的问题。没有哪个电影人…

Revit问题:降板表面填充图案和构件上色

一、Revit中如何为降板表面填充不同的图案 在平面图中该如何利用填充图案来区别降板跟楼板? 1、中间的楼板为降板(120)/-150mm,下面我们通过“过滤器”来为其填充表面图案。 2、通过快捷键VV打开“可见性/图形替换”对话框,单击选择“过滤器”一项。 3、…

2023/1 寒假期间自学c++计划安排

寒假一期学习总结 寒假一期学习是在线下进行的,总的来说,非常充实,也很有收获,成体系的学习了 二分,高精度,函数,结构体,STL 等等内容,既开心有学到了知识。 在这7天的集…

最新ios证书申请流程

苹果官方申请ios证书的方法,需要mac电脑,需要使用钥匙串管理先生成csr文件,然后去苹果开发者中心生成证书,然后再用mac电脑导出p12证书。假如我们没有mac电脑,又如何申请证书呢?这个教程我将教会大家如何使…

从汇编的角度了解C++原理——类的储存结构和函数调用

本文用到的反汇编工具是objconv,使用方法可以看我另一篇文章https://blog.csdn.net/weixin_45001971/article/details/128660642。 1、类的储存结构和函数调用 以这段代码为例。 编译后对obj文件反汇编,得到以下汇编代码,配合常量的值来分…

大数据技术架构(组件)——Hive:环境准备2

1.0.1.5、Mysql安装1.0.1.5.1、软件包下载解压缩官网或者直接从百度云盘中下载即可。https://dev.mysql.com/downloads/mysql/1.0.1.5.2、环境变量配置1.0.1.5.2.1、创建系统环境变量MYSQL_HOME1.0.1.5.2.2、将系统环境变量配置到Path上1.0.1.5.2.3、生成Data文件使用系统管理员…

【MySQL进阶教程】MySQL管理

前言 本文为 【MySQL进阶教程】MySQL管理 相关知识,下边将对系统数据库,常用工具(包括:mysql、mysqladmin、mysqlbinlog、mysqlshow、mysqldump、mysqlimport/source)等进行详尽介绍~ 📌博主主页&#xff…

开发微信小程序过程中遇到的问题笔记

时间绑定bindtap的基础用法 <view id"tapTest" data-hi"WeChat" bindtap"tapName"> Click me! </view>这里要注意的是data-xxx中的xxx需要小写&#xff0c;否则获取不到。 使用for循环的时候&#xff0c;这种方法是拿不到数据的。 …

系统分析师案例必备知识点汇总---2023系列文章三

系统设计 1、面向对象设计 分析类图是从用户的角度出发得到的业务“系统”&#xff0c;而设计类图更多的是从系统、软件的角 度来描述和表达系统。二者具体的区别&#xff1a; 分析类图&#xff1a;在需求分析阶段&#xff0c;类图是研究领域中的概念&#xff1b;分析类图主要…