Docker 部署Streamlit项目

2023-11-16

前言: 关于streamlit

关于streamlit:


Docker 部署Streamlit项目 | Streamlit如何部署到云服务器

image-20211015221349826

1、安装docker

  • 注:安装之前,先关闭SELINUX服务
    SELINUX是CentOS系统捆绑的安全服务程序,因为安全策略太过于严格,所以建议关闭这项服务
    修改/etc/selinux/config文件,设置SELINUX=disabled

    vi /etc/selinux/config
    

    将 SELINUX=enforcing 改为 SELINUX=disabled

    image-20211019170424307

安装Docker服务,-y代表默认安装

yum install docker -y

方便做法:直接宝塔面板软件商店安装

image-20211019165513133

注:docker常用命令

service docker start # 启动docker服务
service docker stop # 停止docker服务
service docker restart # 重启docker服务

2、拉取python镜像

2.1、什么是DockerHub?

  • DockerHub是Docker公共镜像仓库,为用户提供了大量的镜像文件
    https://hub.docker.com/
    由于国内网络访问DockerHub很慢,无法下载镜像文件,我们可以使用Docker加速器

2.2、配置docker加速器

DaoCloud加速器采用自主研发的智能路由及缓存技术并引入了先进的协议层优化,极大提升拉取镜像的速度和体验

(配置配置docker加速器的时候可以先关闭docker服务然后再重启)

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

注意:修改/etc/docker/daemon.json文件,去掉结尾的逗号

image-20211019171503544

image-20211019171548068

2.3、拉取python镜像

docker pull python:3.6

3.6指的是是Python的版本

3. 创建python容器

3.1、首先创建网段

默认情况下,Docker环境会给容器分配动态的IP地址,这就导致下次启动容器的时候,IP地址就改变了

我们可以单独创建一个Docker内部的网段(172.20.0.X)

docker network create --subnet=172.20.0.0/16 pynet
  • /16表示创建出来的网段可以创建65534个IP地址;
  • 如果创建失败可能是因为网段已经被占用,可以试试其他的网段;

3.2、在创建的网段范围内创建python容器

docker run -it -d --name=StreamlitHelloWorld -p 5002:8501 -v /www/wwwroot/experiment/StreamlitHelloWorld:/root/StreamlitHelloWorld --net pynet --ip 172.20.0.3 python:3.6 bash

注:

  • **docker run :**创建一个新的容器并运行一个命令
  • -i: 以交互模式运行容器,通常与 -t 同时使用;
  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
  • -d: 后台运行容器,并返回容器ID;
  • –name=“nginx-lb”: 为容器指定一个名称;
  • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
  • –volume , -v: 绑定一个卷(目录映射)(/www/wwwroot/experiment/exp2是我的项目文件所在的真实位置;/root/project是docker内文件位置)
  • –net: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
  • -ip:指定IP地址(虚拟);在pynet网段所在的范围内创建;(172.20.0.1是网关地址,不能使用,172.20.0.2以及之后的可以使用)
  • python:3.6 指定使用的镜像

4、启动服务streamlit服务

进取容器内部之后,转到项目启动文件所在目录,输入

streamlit run helloworld.py

image-20211019205920632

输入网址:http://101.32.183.14:5002/ 访问(注意端口映射到了5002)

  • 注意:此时直接按下“Ctrl+c”退出运行的话,就是结束了python程序,然后在无法访问了;

稳妥的方法是:

加上nohup,使用命令:

nohup streamlit run helloworld.py

image-20211019211725014然后直接关上终端窗口即可;

image-20211019211802185

5、docker常用命令

docker images # 列出本地镜像
docker ps -a # 查看所有的容器
docker start <容器 ID> # 启动容器
docker stop <容器 ID> # 停止容器
docker restart <容器 ID> # 停止的容器可以通过 docker restart 重启:
docker exec -it nlp bash # 进入"nlp"容器
docker network rm pynet # 删除pynet网段

6、可能的报错:

创建网段的时候:

image-20211015225745883

ERROR response from daemon: Pool overlaps with other one on this address space

  • 在docker中创建networks的时候有时候会报ERROR: Pool overlaps with other one on this address space的错误,这是因为目标网段已经存在的原因,通常这发生在将要创建的networks手动指定了subnet网段地址的时候。| 这时有两个选择,一是查看已存在的网段是否有容器正在使用,如果没再用了可以删除该网段对应的网卡,二是修改目标的subnet网段地址。
  • 注意:默认情况下,docker默认创建的网段为172.17.0.X,因此创建的容器都是放在这个网段之中。
  • 如果报错,可能是之前创建的容器已经使用了这个网段,那就另外选择其他的网段
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker 部署Streamlit项目 的相关文章

随机推荐

  • C++复习笔记--STL练习案例1(评委打分和员工分组)

    目录 1 评委打分 1 1 案例描述 1 2 代码实现 2 员工分组 2 1 案例分析 2 2 代码实现 1 评委打分 1 1 案例描述 有 A B C D E 共 5 名选手 由 10 个评委分别对每一名选手打分 去除评委的最高分和最低分
  • 7 个适合初学者的项目,可帮助您开始使用 ChatGPT

    推荐 使用 NSDT场景编辑器快速搭建3D应用场景 从自动化日常任务到预测复杂模式 人工智能正在重塑行业并重新定义可能性 当我们站在这场人工智能革命中时 我们必须了解它的潜力并将其整合到我们的日常工作流程中 然而 我知道开始使用这些新技术可
  • 必看!大语言模型调研汇总!!

    作者 guolipa 知乎 自从ChatGPT出现之后 各种大语言模型是彻底被解封了 每天见到的模型都能不重样 几乎分不清这些模型是哪个机构发布的 有什么功能特点 以及这些模型的关系 比如 GPT 3 0 和 GPT 3 5 就有一系列的模
  • Android 统一打包框架(附源码下载)

    唠叨 把手给我 我带你去吃云浮吃石磨肠粉 云吞面 木瓜渣 那里的肠粉和广州的不一样 皮很薄很滑 肉馅没广州的那么花里胡哨 只有肉碎和香葱 但吃起来就很香滑 再配上它的甜辣酱 那味道好极了 云吞面的面是手打的竹升面 就是手动用个大竹子 一下下
  • 做量化你需要知道的那些术语!(持续更新)

    金融相关 股票 股份公司发行的所有权凭证 债券 承诺按一定利率支付利息并按约定条件偿还本金的债权债务凭证 风险较低 固定收益 固定收益类投资指投资于银行定期存款 协议存款 国债 金融债 企业债 可转换债券 债券型基金等固定收益类资产 风险低
  • antd design pro 之「PageHeaderWrapper」

  • 微服务-API网关-权限控制

    权限控制介绍 权限控制是一个古老的话题 你可能会想有没有什么权限设计方案可以满足所有的应用场景呢 答案是没有 就像几乎所有问题一样 没有一种系统可以解决所有情况的 我们需要根据不同的场景和需求来设计不同的系统 权限控制主要设计用户 角色 组
  • CCIE面试题

    前言 这里是几个月前在网上转载很多的CCIE面试题 题虽然不难 但如果没有在电信或cisco代理商工作过 仅仅凭书面的知识还是回答不全的 下面是网上的参考答案加上我的一点点补充 以后有时间再补充 先贴出来供大家参考 也让从事相关技术的人自我
  • YOLOV5更换轻量级的backbone:mobilenetV2

    目录 简洁概要 修改主干网络 一 添加自己主干网络 二 在yolo py中添加common中的两个函数 三 制作mobilenetv2的yaml配置文件 四 制作数据集VOC的yaml配置文件 五 启用训练 六 性能检测 简洁概要 Mobi
  • Elasticsearch 8.8.0 发布

    Elasticsearch 是一个基于 Lucene 库的搜索引擎 它提供了一个分布式 支持多租户的全文搜索引擎 具有 HTTP Web 接口和无模式 JSON 文档 Elasticsearch 基于 Java 开发 并在 SSPL Ela
  • 使用mongo命令工具操作集合数据

    与 MongoDB 建立连接 mongo 如果设置了密码 使用这行命令 mongo port 27017 u admin p xxxxxx authenticationDatabase admin 以操作八月创建的历史数据为例 确认操作集合
  • docker 启动时错误docker: Cannot connect to the Docker daemon

    在学习docker的时候遇到一个错误docker Cannot connect to the Docker daemon at unix var run docker sock Is the docker daemon running 如下
  • make[1]: [persist-settings] Error 2 (ignored) CC adlist.o /bin: cc: command not found make[1]: *

    Linux系统安装Redis执行Make编译时报错 make 1 persist settings Error 2 ignored CC adlist o bin cc command not found make 1 adlist o E
  • 微信小程序 scroll-view的滚动条设置

    小程序的scroll view用的比较多了 列表页一般也没管它的滚动条 最近突然发现在android与ios中横向滑动的时候表现不一样 不一样在哪呢 ios上直接就不显示啊 也是没谁了 深入想了一下 这滚动条能不能换一颜色或者换个样式 有这
  • 基于AIOT技术的智慧校园空调集中管控系统设计与实现

    AIOT技术的智慧校园空调集中管控系统设计与实现本科毕业论文 I 引言 本文旨在探讨基于AIOT技术的智慧校园空调集中管控系统的设计和实现 首先 综述当前AIOT技术发展状况和智慧校园空调集中管控系统在当前应用领域中的重要性 其次 分析相关
  • 原理图符号(原理图库)创建流程及注意事项

    参考资料 电巢EMEA体验营二期 1 原理图符号创建流程 1 0 元器件属性 以一款压力传感器芯片LPS22HH为例 来讲解原理图符号的创建流程 LPS22HH的引脚描述如下所示 1 1 创建工程 1 2 创建原理图符号文件 创建完成原理图
  • Xilinx BUFGMUX使用注意事项

    Xilinx BUFGMUX使用注意事项 最近使用Xilinx FPGA的时候 需要用到一个外部时钟和一个PLL产生的时钟 可以通过外部SWICH进行时钟的切换 觉得这种方式可以通过原语例化完成 原语 果不其然 在原语示例中找到了类似的模块
  • java基础:浅谈泛型

    1 为什么要使用泛型 给一段代码 import java util ArrayList import java util List public class GenericList error public static void main
  • 解决“The method XXXXXX of type XXXXXXXXX must override a superclass method”

    我的Eclipse版本是3 6 1 Override 时出现以下错误 The method XXXXXX of type XXXXXXXXX must override a superclass method 上网搜索原来原因是 实现类里面
  • Docker 部署Streamlit项目

    文章目录 前言 关于streamlit Docker 部署Streamlit项目 Streamlit如何部署到云服务器 1 安装docker 2 拉取python镜像 2 1 什么是DockerHub 2 2 配置docker加速器 2 3