【Docker】创建Docker并部署Web站点

要在服务器上创建Docker容器,并在其中部署站点,你可以按照以下步骤操作。我们将以Flask应用为例来说明如何完成这一过程。
在这里插入图片描述

1. 准备工作

确保你的服务器已经安装了Docker。如果没有,请根据官方文档安装:

2. 创建 Flask 应用的 Dockerfile

假设你已经有了一个Flask应用(如前面提到的app.py),你需要为它创建一个Dockerfile。Dockerfile定义了构建Docker镜像所需的指令。在你的项目根目录下创建一个名为Dockerfile的文件,内容如下:

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

# 设置工作目录
WORKDIR /app

# 将当前目录的内容复制到容器的工作目录中
COPY . /app

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

# 暴露应用程序将要监听的端口
EXPOSE 5000

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

确保在同一目录下有一个requirements.txt文件列出所有依赖项(例如Flask):

Flask==2.0.1

3. 构建并运行 Docker 容器

  1. 导航到包含Dockerfile的目录

  2. 构建Docker镜像

    docker build -t myflaskapp .
    
  3. 运行Docker容器,并将其映射到主机的一个端口上:

    docker run -d -p 5000:5000 --name flaskapp myflaskapp
    

    这里-d选项表示后台运行,-p 5000:5000表示将容器内部的5000端口映射到主机的5000端口,--name指定了容器的名字。

4. 配置防火墙和路由器

确保服务器上的防火墙允许外部连接到你选择的端口(这里是5000)。如果你使用的是Linux系统,可以使用ufwiptables来配置防火墙规则。另外,如果服务器位于路由器后面,你可能需要设置端口转发规则,以便将来自外部网络的请求转发到服务器的相应端口。

5. 从局域网访问站点

一旦Docker容器成功启动并且防火墙规则正确配置,你应该能够从局域网内的其他机器通过浏览器访问该站点。只需要在浏览器中输入服务器的局域网IP地址加上端口号,例如:

http://<server_ip>:5000/

替换<server_ip>为你服务器的实际局域网IP地址。

扫描二维码关注公众号,回复: 17600133 查看本文章

注意事项

  • 安全性:在生产环境中,建议不要直接暴露开发环境中的默认端口(如5000)。考虑使用反向代理(如Nginx)来处理HTTPS、负载均衡等功能,并将流量转发给Docker容器。
  • 持久化数据:如果你的应用程序需要持久化存储(例如数据库或上传文件),请确保正确地配置了卷(volumes)以避免数据丢失。
  • 更新与维护:定期更新你的Docker镜像和应用程序代码,保持系统的安全性和性能。

通过以上步骤,你可以在服务器上创建一个Docker容器并在其中部署你的站点,同时允许局域网内的其他设备通过IP地址和端口访问这个站点。