首页 > 其他分享 >【Docker】创建Docker并部署Web站点

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

时间:2024-12-08 12:31:57浏览次数:6  
标签:Web 5000 容器 Flask 端口 站点 服务器 Docker

要在服务器上创建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地址。

注意事项

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

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

标签:Web,5000,容器,Flask,端口,站点,服务器,Docker
From: https://blog.csdn.net/u010690311/article/details/144257358

相关文章

  • Web004__PHP基础
    PhpStudy小皮面板(phpstudy)-让天下没有难配的服务器环境!下载小皮面板,小皮面板集成了Apache+Php+mysql等常见组合安装时选择自定义目录到D盘(任意)编辑器使用SublimeText(有破解版)或者notepad++(免费)搜索官网,或者一些博客、51破解官网声明:非不得已,不用破解版小皮......
  • @media print可以用来控制web打印样式吗?
    是的,@mediaprint可以用来控制Web打印样式。它是一个CSSat-rule,允许你为打印页面指定特定的样式,这些样式与屏幕上显示的样式不同。当用户打印网页时,浏览器会应用@mediaprint规则中定义的样式,而忽略或覆盖屏幕显示的样式。这使得你可以优化打印输出,例如:隐藏不必要的内容......
  • 学习threejs,实现配合使用WebWorker
    ......
  • 65. Web前端网页案例——【海贼王动漫主题网页(10页)】 大学生期末大作业 html+css
    目录 一、网页概述二、网页文件三、网页效果四、代码展示1.html2.CSS五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强六、更多推荐♬♬♬欢迎光临我的CSDN!这里是Web前端网页案例大集汇,有各行各业的前端网页案例,每天会持续更新!如果你对Web前端网......
  • 【Web】2023安洵杯第六届网络安全挑战赛 WP
    目录What'smyname easy_unserializesignalSwaggerdocs赛题链接:GitHub-D0g3-Lab/i-SOON_CTF_2023:2023第六届安洵杯题目环境/源码What'smyname 第一段正则用于匹配以include结尾的字符串,并且在include之前,可以有任意多个5个字符组成的块。下面明显......
  • 【mac】docker安装单节点elasticsearch
    【mac】docker安装单节点elastcsearch前言本文通过实操记录macbookM1pro上安装elasticsearch和kibana7.9.0的详细过程安装elasticsearch1、拉取dicker镜像dockerpullelasticsearch:7.9.1镜像拉取完成2、创建网络构建elasticsearch和kinbana的局域网,方便......
  • [CISCN 2019华东南]Web11
     [CISCN2019华东南]Web11 给了两个链接但是都无法访问这里我们直接抓包试一下我们插入X-Forwarded-For:127.0.0.1发现可以修改了右上角的IP地址,从而可以进行注入{$smarty.version}查看版本号if标签执行PHP命令{ifphpinfo()}{/if}查看协议{ifsystem('l......
  • ASP.NET Core Web API中使用缓存加速响应
    https://www.bilibili.com/video/BV1kpzSYUEES不适用Redis方案,在响应报文中添加Cache-Control:no-cache配合ETag实现缓存加速核心思路,使用https://github.com/SimonCropp/Delta库,监视数据库变更,如果无变更,直接返回304状态码,跳过数据库业务查询,实现相应加速实现变更的原理,M......
  • CentOS Docker 及 Docker Engine-Community 安装
    CentOSDocker安装Docker支持以下的64位CentOS版本:CentOS7CentOS8更高版本…使用官方安装脚本自动安装安装命令如下:curl-fsSLhttps://get.docker.com|bash-sdocker--mirrorAliyun手动安装卸载旧版本较旧的Docker版本称为docker或docker-eng......
  • 鸿蒙Next开发实战教程-使用WebSocket实现即时聊天
    鸿蒙系统提供了WebSocket库,使用它可以很方面的实现即时聊天功能,今天就使用WebSocket来实现一个完整的聊天功能。首先创建一个WebSocket实例:letws=webSocket.createWebSocket()然后创建WebSocket连接,我找到一个简单的ws地址,它直接返回我们发送的消息:leturl='ws://124.......