【Docker-k8s学习和实战】(九)Dockerfile实战--用Dockerfile构建一个python网站镜像

本文指导读者使用Python Flask构建Web应用,并通过Dockerfile进行自动化部署,实现快速在本地和容器环境下运行。步骤包括编写Flask代码、创建Dockerfile、构建镜像和运行容器,以及修改和更新内容的方法。
摘要由CSDN通过智能技术生成

❤️ 专栏简介 :本专栏我们会从最基础的内容开始学习Docker的相关内容,循序渐进的掌握Docker知识并进行实战。

☀️ 专栏适用人群 :适用于具备基础 Linux 知识的 Docker 初学者,当然希望各位有经验的docker开发者不吝赐教。

🌙专栏特点:通俗易懂、图文并茂、非常详细;

🌴 专栏说明 :如果文章知识点有错误的地方,欢迎大家随时在文章下面评论,我会第一时间改正。让我们一起学习,一起进步。

🍄 专栏地址:https://blog.csdn.net/anchenliang_1002/category_11878561.html

在这里插入图片描述

本小节的内容

1、我们会使用python语言,基于flask web框架,开发一个自己的网站,即开发一个后端的网站代码。
2、开发Dockerfile,部署该代码,生成镜像
3、其他人基于该镜像,docker run就可以在电脑上跑起来我们开发的这个网址

实现过程如下:

1.1 编写flask的python代码

首先,在本地创建一个learn_docker的文件夹;然后在里面创建一个test_flask.py文件:

mkdir learn_docker
touch test_flask.py
vim test_flask.py

然后在vim中按输入set paste进入粘贴模式,将以下内容复制进文本中

#coding:utf8
from flask import Flask
app=Flask(__name__)
@app.route('/')
def hello():
return "hello docker,i am chaoge."
if __name__=="__main__":
app.run(host='0.0.0.0',port=8080)

第一行代表以下代码使用utf8格式,这样就能识别中文了;
第二行表示导入flask包;
第三行表示定义app变量;
第四行表示我们要访问网站的/路径
第五行第六行是要显示的内容;
第七行第八行是启动该web框架,0.0.0.0代表绑定本机所有网卡,端口是8080

1.2 编写Dockerfile

创建一个Dockerfile文件,并将以下内容复制进去:

FROM centos:7.8.2003
RUN curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo;
RUN curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo;
RUN yum makecache fast;
RUN yum install python-devel python-pip -y
RUN pip install flask
COPY test_flask.py /opt
WORKDIR /opt
EXPOSE 8080
CMD ["python","test_flask.py"]

第一行表示我们基于的镜像是centos:7.8.2003;
第二行第三行是在配置yum源;
第四行是生成缓存;
第五行表示安装python的各种依赖工具;
第六行表示安装flask框架;
第七行使用COPY指令将宿主机中我们刚刚编写的test_flask.py文件拷贝到容器内的/opt目录下;
第八行是使用WORKDIR指令切换到/opt目录下;
第九行是使用EXPOSE指令开放容器的8080端口;
第十行表示在docker run启动该容器时,容器内部默认执行python test_flask.py命令。

完成后如下图所示:
在这里插入图片描述

注意:在第七行中我们拷贝test_flask.py文件时并没有指定路径,所以默认是当前路径,即Dockerfile所在路径;所以test_flask.py文件和Dockerfile文件必须是平级存在于同一目录下的;

1.3 构建镜像

指令为:

docker build -t 'anchenliang/my_flask_web' .

意思是构建镜像并修改tag名字为anchenliang/my_flask_web
最后一句话出现安装成功的提示才是安装成功:
在这里插入图片描述

1.4 运行镜像,生成容器

直接运行镜像,并映射端口,生成容器
docker run -d --name my_flask_web_1 -p 90:8080 anchenliang/my_flask_web

1.5 访问宿主机,查看效果

访问我们的宿主机ip:90,结果如下:

在这里插入图片描述

1.6 修改网站内容

我们这个程序是跑在容器里的,如果修改网站内容,我们应该容器内的应用程序。

方法1:修改宿主机的代码,然后修改Dockerfile,重新构建;
方法2:进入到已经运行的容器内,修改代码,重启容器即可。

首先,使用docker exec指令进入到正在运行的容器内部
在这里插入图片描述
然后修改里面的test_flask.py文件,修改后,退出exit退出容器;然后docker restart 4efde9370b50重启该容器即可。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

乘凉~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值