【更新】Docker新手入门教程1:在Windows系统创建Python flask镜像并运行网站应用

文章目录


前言`

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

docker uml用例图

在这里插入图片描述

学习Docker可以在Docker 学习中心参考相关内容 docker 学习中心

在这里插入图片描述


以下举例一个Docker应用,利用Docker创建带Flask模块的Python镜像,并以此镜像创建容器运行应用


一、下载Docker

docker 软件官方下载地址: docker官网

在这里插入图片描述

二、安装Docker 前准备


windows系统配置:需要安装.netframework,在windows功能上启用
在这里插入图片描述

二、生成Dockerfile文件

1、在文件夹下按住Shift并右击,选择《在此处打开PowerShell窗口》;

在这里插入图片描述

2、在弹出的PowerShell对话框中输入Docker init命令,在接下来的对话中按照下图选项设置

利用Docker init 指令可以方便创建dockerfile文件,通过选择几个对话选项即可

在这里插入图片描述
对话完成后可以在文件夹中看到生成了3个文件,其中一个为Dockerfile,创建完成,后面可以创建镜像了
在这里插入图片描述

三、创建reequirements.txt文件

在Windows系统新建个文件夹,名称为DockerImageDirectory(可任取),在文件夹下创建个名称为requirements.txt文件(名称固定);
在requirement.txt中填写需要安装的的第三方库及版本,本次在python里只需要安装一个模块flask,所以文件内容为:Flask==2.3.2

在这里插入图片描述

四、创建镜像

1、接下来在对话框中输入"Docker build -t image_python_flask_demo ." 命令等待镜像创建完毕如下图:

在这里插入图片描述

2、镜像创建完成后可以再输入docker images命令来查看当前docker里有哪些镜像

在这里插入图片描述

五、生成容器并运行Flask应用

1、利用python及Flask模块创建一个简单的网页应用,如下图,运行后可以正常开启页面即可,然后确认当前项目所在的地址,此例为C:\Users\reedi\PycharmProjects\WebService_Django(想学Django呢先学了Flask~~)

在这里插入图片描述

2、在对话框中输入"docker run -it --name container_python_flask_demo -v C:\Users\reedi\PycharmProjects\WebService_Django:/app -p 5000:5000 image_python_flask_demo" 回车确认,如下图当下方出现RUNNING on …时表示容器已经正常运行。按住CTRL再点击http://127.0.0.1:5000时弹出网站页面时表示容器已经正常运行了。

在这里插入图片描述
页面可以正常打开说明Docker创建镜像及容器完成

在这里插入图片描述

六、创建镜像仓库并将镜像上传到网络仓库

1、打开PowerShell并查看当前Docker中的镜像

在这里插入图片描述

2、确认需要上传的镜像,并运行指令Docker tag python:alpine3.18 pittding/python:v2

在这里插入图片描述

注意: 需要上传的镜像需要Docker tag指令将本地的镜像转化为带有用户信息的镜像后才能上传,否则直接上传会失败

可以在Docker desktop 中查看生成的镜像,点击要上传的镜像 等待上传完成

在这里插入图片描述

3、上传完成后会弹出上传成功对话框

在这里插入图片描述

要将镜像上传到官方仓库需要先建立一个账号,然后登录后上传;另外上传时可能因为国内网络问题无法上传。可以选择国内的镜像网站上传

在这里插入图片描述

七、从网络仓库拉取镜像

在这里插入图片描述

在这里插入图片描述

总结

创建Docker镜像及容器需要一些知识储备:

  1. Docker 创建镜像及容器的指令 菜鸟教程
  2. Dockerfile 创建及应用的指令,主要用的有From,RUN,CMD Docker官方文档
  3. PowerShell命令行指令
  4. Python 及 Flask 创建页面
  5. 官方镜像仓库上传及拉取需要建立Docker账号,也可能涉及到网络问题,如果不能成功可以选择国内镜像仓库,如阿里云
  6. docker build创建镜像时有可能会报错,请将自动生成的dockerfile文件中第一行(syntax=docker/dockerfile:1)删除

在这里插入图片描述
7. docker容器创建成功后启动会与脚本主进程关联,如果脚本主进程结束则容器也随之关闭运行;如果需要容器不立即退出,在dockerfile中加入如下指令:

CMD [“tail”, “-f”, “/dev/null”]

  1. 如果需要容器中查看脚本日志,需要在docker run中加入参数-it,关联伪终端可以在docker容器log中查看输出
  2. docker可以通过挂载的方式将项目文件关联到其运行环境中,需要在docker build中通过-v参数指定,如-v project_file:/app,冒号前面为项目文件夹地址,冒号后面为docker容器中的文件地址

注意:挂载项目文件后需要 将dockerfile中的copy . .行删除,否则会报错

  1. 在docker文件中指定python环境时需要注意确认docker中是否有相应版本的镜像,可通过docker desktop查看可用的镜像

在这里插入图片描述
11. 如果想让容器随docker一同启动可在docker run 中加入–restart参数并指定为always,可供选择的参数为:

  • no:默认值,不自动重启容器。
  • on-failure:仅在容器退出状态码非零时重启容器。
  • unless-stopped:无论退出状态码如何,始终重启容器,除非手动停止容器。
  • always:无论退出状态码如何,始终重启容器。

本示例只是讲解了创建Docker镜像的简单流程,每个人在做流程也会多多少少遇到这样那样的问题,多Bing,多动手,多思考,熟能生巧,希望你顺利!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值