扁平化色彩网站,域名解析错误连不上网,邢台抖音优化,wordpress 股票主题用一个hello world的小例子来入门docker
在 Docker 容器中部署 Python Flask 的简单 Hello World 项目#xff0c;需要遵循以下流程#xff1a;
编写应用程序
首先#xff0c;在本地计算机上编写一个简单的 PythonFlask 应用程序#xff0c;例如#xff1a;
# hello.…用一个hello world的小例子来入门docker
在 Docker 容器中部署 Python Flask 的简单 Hello World 项目需要遵循以下流程
编写应用程序
首先在本地计算机上编写一个简单的 PythonFlask 应用程序例如
# hello.pyfrom flask import Flask
app Flask(__name__)app.route(/)
def hello():return Hello, World!if __name__ __main__:app.run(debugTrue, host0.0.0.0)该应用程序创建了一个简单的 Flask 应用程序监听本地的 5000 端口当访问根路径(/)时返回 “Hello, World!” 信息。
创建 Dockerfile
接下来创建一个 Dockerfile 指定如何在 Docker 镜像中构建和运行 Python Flask 应用程序。Dockerfile主要作用就是来生成镜像images。例如
# Dockerfile# 这里选一个在docker公共库中有的python版本即可
FROM python:3.10.12-slim-bookworm# requirements.txt里面一般存有python项目中需要的包
COPY requirements.txt /app/requirements.txt
RUN pip install --no-cache-dir -r /app/requirements.txt# 工作目录/app。在镜像创建一个容器后会在其linux系统下多一个目录/app。里面存着我们的项目
COPY . /appWORKDIR /app# 指定端口
EXPOSE 5000# 在启动docker镜像之后它会自动运行python hello.py这条命令
CMD [python, hello.py]该 Dockerfile 的实现过程是这样的
基于 Python 3.10 版本的 slim 基础镜像来构建镜像。拷贝 requirements.txt 文件到容器中使用 pip 命令来安装依赖到镜像中。将当前文件夹中的所有文件代码放到容器中名为 /app 的目录中。使用 WORKDIR 指令设置工作目录为 /app。定义暴露的端口为 5000。使用 CMD 指令来运行 Python 应用程序。 构建镜像
使用以下命令在本地计算机上构建 Docker 镜像
$ docker build -t myflaskapp .该命令将基于 Dockerfile 构建镜像并将其标记为名称为 myflaskapp 的镜像。 构建好的镜像存在本地docker仓库中可以用命令 docker images来查看。
运行容器
最后在 Docker 容器中运行 PythonFlask 应用程序可以使用以下命令
$ docker run -p 5000:5000 myflaskapp该命令将基于 myflaskapp 镜像启动 Docker 容器并将 5000 端口映射到本地计算机的 5000 端口上。
在本地计算机上打开浏览器并访问 http://localhost:5000 应该可以看到 “Hello, World!” 信息。 【总结】 Docker因为其隔绝环境的特性可以非常方便部署项目。
举个例子编写好的项目proj要编写dockerfile来定义如何打包镜像最后运行docker build命令来完成打包生成proj对应的镜像image。然后可以通过docker run 来运行打包好的镜像image使其独立成一个容器container。 因此只要使用一样的镜像image最后任何人都可以成功在docker上部署项目来复现代码效果不用因为环境依赖冲突而烦恼。 【容器共享linux内核】 另外在docker容器中运行
uname -a可以查到其版本为 Linux d848bd04657b 5.15.49-linuxkit-pr #1 SMP Thu May 25 07:17:40 UTC 2023 x86_64 GNU/Linux。 这是一个Linux内核版本不同于Ubuntu、Debian 等发行版。 Ubuntu、Debian 等发行版上面是基于内核安装了许多其他的工具和应用程序以便用户能够方便地使用它们。 这也可以看出多个docker容器是共享一个linux内核的。这种方式可以大大减少容器所需的硬件资源同时也使得容器更加轻量级、高效和便携。