docker部署简单应用

在 Docker 上部署简单 Web 应用的步骤

下面以一个基于 Python Flask 的简单 Web 应用为例,介绍如何在 Docker 上部署 Web 应用。

1. 创建 Web 应用

首先,创建一个简单的 Flask Web 应用,文件结构如下:

plaintext

web-app/
├── app.py
├── requirements.txt
└── Dockerfile

app.py

python

运行

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello, Docker World!"

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

requirements.txt

plaintext

flask

2. 创建 Dockerfile

Dockerfile 用于定义 Docker 镜像的构建步骤:

Dockerfile

# 使用官方 Python 基础镜像
FROM python:3.9-slim

# 设置工作目录
WORKDIR /app

# 复制依赖文件
COPY requirements.txt .

# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt

# 复制应用代码
COPY . .

# 暴露端口
EXPOSE 5000

# 定义启动命令
CMD ["python", "app.py"]

3. 构建 Docker 镜像

在项目根目录下执行以下命令构建镜像:

bash

docker build -t flask-web-app .

参数说明:

  • -t flask-web-app:为镜像指定标签(名称)
  • .:指定构建上下文为当前目录

4. 运行 Docker 容器

构建完成后,可以使用以下命令运行容器:

bash

docker run -d -p 5000:5000 flask-web-app

参数说明:

  • -d:后台运行容器(守护模式)
  • -p 5000:5000:将容器内部的 5000 端口映射到主机的 5000 端口

5. 验证应用

打开浏览器,访问 http://localhost:5000,如果看到 "Hello, Docker World!",说明应用部署成功。

6. 停止和清理容器

如果需要停止运行中的容器,可以使用以下命令:

bash

# 查看运行中的容器
docker ps

# 停止容器(使用容器 ID 或名称)
docker stop <container_id_or_name>

# 删除容器
docker rm <container_id_or_name>

其他部署选项

使用 Docker Compose

对于更复杂的应用,可以使用 Docker Compose 来管理多容器应用。创建 docker-compose.yml 文件:

yaml

version: '3'

services:
  web:
    build: .
    ports:
      - "5000:5000"
    restart: always

然后使用以下命令启动应用:

bash

docker-compose up -d
使用环境变量

可以通过环境变量配置应用,修改 app.py

python

运行

from flask import Flask
import os

app = Flask(__name__)

@app.route('/')
def hello():
    name = os.getenv('NAME', 'Docker World')
    return f"Hello, {name}!"

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

运行容器时传递环境变量:

bash

docker run -d -p 5000:5000 -e NAME="Doubao" flask-web-app

总结

通过以上步骤,你可以在 Docker 上部署一个简单的 Web 应用。主要流程包括:

  1. 创建应用代码
  2. 编写 Dockerfile 定义镜像构建步骤
  3. 构建 Docker 镜像
  4. 运行 Docker 容器
  5. 验证应用运行状态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

万能小贤哥

感谢大捞

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

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

打赏作者

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

抵扣说明:

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

余额充值