python项目通过docker部署到Linux系统并实现远程访问

背景需求:在Windows系统编写了简单的python代码,希望能通过docker打包到Linux Ubuntu系统中,并运行起来,并且希望在本地Windows系统中能通过postman访问。

目录

一、原本的python代码

二、创建一个简单的Flask应用程序

三、创建requirements.txt文件

四、编写 Dockerfile

五、编译并导出镜像文件

5.1 指定架构编译

5.2 导出镜像文件 

六、服务器运行 

6.1 导入镜像

6.2 映射容器端口到宿主机端口

七、Windows系统通过postman远程访问 


一、原本的python代码

在本地pycharm中编写一条简单的python代码,假如说只是一条打印语句,现在我们希望在Linux服务器上运行,并且可以由其他用户远程访问,决定打印的内容。

# 打印一条简单的消息
print("Hello, World!")

文件名就叫作testweb.py,放在python项目中的uni目录里

二、创建一个简单的Flask应用程序

改写testweb.py文件,想让其他人能够通过 Web 请求调用 Python 程序,需要将程序改造成一个 Web 服务,并明确指定监听的端口。可以使用 Flask 或其他 Web 框架来实现这一点。这里使用Flask框架。

from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/hello', methods=['POST'])
def hello():
    data = request.get_json()
    message = data.get('message', 'No message provided')
    print(f"Received message: {message}")
    return jsonify({'response': f'Hello, {message}'})

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8000)

三、创建requirements.txt文件

文件当中要有运行程序所需要的python库,这里我只用到了flask,所以可以简单编写并放在uni目录下

requirements.txt文件内容(程序简单,只用到了Flask)

Flask

也可以在文件中指定版本比如(Flask==3.03)

四、编写 Dockerfile

参考我的文件结构

# 使用Python 3作为基础镜像
FROM python:3.10.0

# 设置工作目录
WORKDIR /app

# 复制项目文件到容器中
COPY uni /app/uni

# 安装项目依赖项
RUN pip install -r uni/requirements.txt

# 暴露端口
EXPOSE 8000

# 定义容器启动命令
CMD ["python3", "uni/testweb.py" ]

配置说明:

  • FROM python:3.10.0 我使用的python版本为3.10.0
  • WORKDIR /app  app为工作目录文件,名字随意取即可,注意要和下面的保持一致
  • EXPOSE 8000 Linux服务器上要运行在8000端口(可由自己决定)
  • ["python3", "uni/run.py" ]python项目的启动程序为uni文件夹下面的run.py

五、编译并导出镜像文件

在当前目录终端中运行如下命令

docker build -t image_name .

image_name是镜像名称,自己随意取

5.1 指定架构编译

在一些linux系统,比如centos中,不支持arm64架构,所以需要指明为amd64,不然会报错

docker buildx build --platform linux/amd64 -t image_name:1.0 .

5.2 导出镜像文件 

运行下面命令就可以导出

docker save -o save_name.tar image_name

成功后可在当前项目根目录下看到.tar文件 (llmchain是我自己取的文件名

六、服务器运行 

6.1 导入镜像

将tar文件转到Linux系统中,在当前目录终端运行如下命令

docker load -i llmchain.tar

可以通过下面命令查看是否导入成功

docker images

6.2 映射容器端口到宿主机端口

运行如下命令

docker run -d --name llmchain -p 8000:8000 llmchain

 可通过下面命令检验是否已运行

docker ps

七、Windows系统通过postman远程访问 

上面步骤都成功进行之后,现在你的 Flask 应用程序应该在 Docker 容器中运行,可以在Windows系统上运行postman

访问:http://服务器ip+端口 /hello

这里以我的postman截图

以下是在 Postman 中设置请求的详细步骤

  • 在 URL 输入框中输入 http://服务器ip:8000/hello
  • 在 Body 选项卡中选择 raw 并选择 JSON
  • 下面输入 JSON 请求体
  • 点击 Send 按钮

 即可获得从Linux服务器上传来的响应。

  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 1. 首先,需要在Linux服务器上安装Docker,可以通过官方网站或者包管理器进行安装。 2. 在本地开发环境中,编写Dockerfile文件,定义项目的镜像构建规则,包括基础镜像、依赖项、环境变量等。 3. 使用docker build命令,将Dockerfile文件构建成镜像,并将其推送到Docker Hub或者私有仓库中。 4. 在Linux服务器上,使用docker pull命令,从Docker Hub或者私有仓库中拉取镜像。 5. 使用docker run命令,启动容器,并将容器与主机端口进行映射,使得外部用户可以访问容器中的应用程序。 6. 可以使用docker-compose工具,将多个容器组合在一起,实现复杂的应用程序部署。 ### 回答2: 要将项目通过Docker部署Linux服务器上,我们需要按照以下步骤进行操作: 1. 首先,在Linux服务器上安装Docker。可以通过运行命令`sudo apt-get install docker-ce`来安装Docker。安装完成后,使用命令`docker --version`来验证安装是否成功。 2. 在本地开发环境中创建一个Dockerfile,这是一个文本文件,用来定义将来创建Docker镜像的步骤。Dockerfile中包含了项目所需的软件依赖以及项目代码的复制指令。 3. 在本地开发环境中构建Docker镜像。使用命令`docker build -t image_name:tag .`来构建镜像。其中,`-t`参数用来指定镜像的名称和标签,`.`表示在当前目录下查找Dockerfile文件。 4. 导出镜像文件。使用命令`docker save -o image.tar image_name:tag`将构建好的镜像导出为tar文件。然后将此tar文件通过网络传输到Linux服务器上。 5. 在Linux服务器上导入镜像。使用命令`docker load -i image.tar`来导入镜像。 6. 运行容器。使用命令`docker run -d -p host_port:container_port --name container_name image_name:tag`来运行容器。其中,`-d`参数表示容器将在后台运行,`-p`参数用来指定主机端口和容器端口的映射关系,`--name`参数用来指定容器的名称。 通过以上步骤,我们可以将项目通过Docker部署Linux服务器上。注意,以上步骤中的部分命令需要使用管理员权限,可以在命令前面加上`sudo`来获取管理员权限。 ### 回答3: 要将项目通过Docker部署Linux服务器上,可以按照以下步骤进行操作: 1. 安装Docker:在Linux服务器上安装Docker,可以通过在终端中输入命令来安装。例如,对于Ubuntu系统可以使用以下命令: ``` sudo apt-get update sudo apt-get install docker-ce ``` 2. 构建Docker镜像:在本地开发环境中创建Dockerfile,定义项目的环境和依赖。使用Docker命令构建镜像,例如: ``` docker build -t project-image:version . ``` 这将基于Dockerfile在当前目录中构建一个名为project-image和指定版本的镜像。 3. 上传镜像至仓库:可以将镜像上传至Docker仓库,以便在服务器上进行获取。可以使用以下命令登录到仓库: ``` docker login ``` 然后使用以下命令将镜像上传至仓库: ``` docker push username/project-image:version ``` 4. 在 Linux服务器上拉取镜像:在服务器上登录Docker仓库,并使用以下命令拉取镜像到服务器: ``` docker pull username/project-image:version ``` 5. 运行容器:使用以下命令在Linux服务器上运行容器: ``` docker run -d --name project-container -p 8080:80 project-image:version ``` 这将在服务器上创建一个名为project-container的容器,并将主机的8080端口映射到容器的80端口。 通过以上步骤,项目就会被部署Linux服务器上了。可以通过服务器的IP地址和指定的端口号来访问项目。需要注意的是,服务器上需要安装和配置好Docker服务,确保网络端口可访问,并根据项目的具体配置修改命令中的参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

丹牛Daniel

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

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

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

打赏作者

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

抵扣说明:

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

余额充值