2019-07-07-What-is-Docker.md

titledatetags
What is Docker
2019-07-07 10:28:23 -0700

img

容器

容器到底是什么?

容器是基于image(镜像)运行的"隔离"环境,相同容器可以并存在同一服务器上;在底层系统一致的情况下,能够快速启动服务、保障服务可用性;

更简单的说,容器好比运输车(Container);车内可以装同一类的(Image)物品(快递/石油/泥沙);装有石油的两辆车可以同时在一条航线(内核)行驶,装有不同物品的车也是如此互不干扰;

image-20190707174157494

如何运行容器?

其实上面的例子已经告诉了大家,运行容器我们需要一个操作系统、镜像、docker服务

  • Ubuntu/Centos/Windows目前都支持
  • 镜像:使用Dockerfile定义镜像内容包含代码、运行环境所需的依赖软件,打包成一个标准单元;
  • Docker服务:配合镜像运行容器的载体;

Docker是什么?

  • Docker是运行容器化环境的载体,目前是世界比较领先的容器平台;
  • 由Go开发的一款基于Linux内核cgroup、namespace及AUFS类的UnionFS等技术对进程进行封装隔离,从操作系统层进行虚拟化;
  • 能够启动重复服务,快速构建开发、测试、预上线多类环境;
  • 标注化单元,使得启动的容器具有服务唯一性,在交付过程中能够快速回滚到可用版本;
  • 能够在短时间内拉起服务(秒、甚至毫秒级别);
  • 能够从一个平台上运行的应用迁移到另一个平台上,且不用担心运行环境无法正常运行的情况;
  • 在接口遇到突泉式增长时能够自动伸缩缓解服务承载能力

搬着小板凳看看如何使用Docker吧

可能了解虚拟化的朋友看到这里就又些疑惑了,以上功能似乎和大多云厂商用的虚拟化没什么区别呀!

没错,但你只说对了一半,接下来我们针对传统方式、虚拟化、容器化进行对比;

传统Vs虚拟化Vs容器化

话不多说,先上图表�

部署场景依赖服务可部署数量启动时间硬盘使用性能
传统操作系统因服务而定---ALL原生
虚拟化虚拟产品几十个分钟级GB弱于
容器化Docker上千个秒级MB接近

同等资源的机器上,容器的优势不要太强,这就是为什么容器化在业务场景上使用更优于虚拟化,当然虚拟化有的好处是容器目前没做到的(根据用户进行隔离)而容器化是基于不同应用进行的隔离

### 部署 Ragflow 和 Dify 的详细步骤 #### 一、Ragflow 的部署 以下是 Ragflow 的具体部署过程: 1. **克隆 Ragflow 仓库** 使用 Git 将 Ragflow 项目的源码从 GitHub 上拉取下来,并切换到指定版本 `v0.17.2`。 ```bash git clone https://github.com/infiniflow/ragflow.git cd ragflow/docker git checkout -f v0.17.2 ``` 2. **启动 Docker 容器** 利用预构建的 Docker 镜像来运行 Ragflow 服务。执行以下命令以启动服务器: ```bash docker compose up --build -d ``` 这一步会自动下载所需的镜像并启动容器。 3. **访问 Ragflow API 或 Web 界面** 默认情况下,Ragflow 的服务会在本地监听特定端口(如 80)。如果需要更改默认端口设置,可以在 `docker-compose.yml` 文件中调整端口映射规则[^3]。例如,将容器内的 80 端口映射至主机上的其他端口(如 8000),以便避免冲突。 #### 二、Dify 的部署 对于 Dify 框架的安装与配置,则需按照官方指南完成环境搭建及相关依赖项的引入。 1. **获取最新版 Dify** 访问其官方发布页面或者通过 Python 脚本快速初始化项目文件夹结构。 2. **创建虚拟环境并激活** 推荐使用 Python 的 Virtualenv 来隔离不同工具链之间的相互影响。 ```bash python3 -m venv .venv source .venv/bin/activate pip install --upgrade pip setuptools wheel ``` 3. **安装必要的包管理工具** 根据 README.md 中列举出来的清单逐一满足前置条件后再继续后续操作。 ```bash pip install -r requirements.txt ``` 4. **自定义参数调整** 如果计划集成外部数据库或者其他第三方插件功能模块的话,请务必提前规划好整体架构设计思路再动手编码实现逻辑部分[^4]。 5. **测试联调环节** 当所有组件都已就绪之后就可以尝试发起请求看看返回结果是否符合预期目标了! ```python import requests response = requests.post( url="http://localhost:8000/api/v1/chat", json={ "message": "What is the capital of France?", "conversation_id": None, "parent_message_id": None } ) print(response.json()) ``` 以上即为完整的 Ragflow 和 Dify 部署指导说明文档内容概览[^1][^2]. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值