Jun 17, 2025
1 min read
在 Windows 上安装 llama-cpp-python 完整指南
以下是在 Windows 系统上安装支持 GPU 加速的 llama-cpp-python 的详细步骤,包含常见问题解决方案和性能优化技巧
🛠 安装前准备 1. 系统要求 操作系统:Windows 10 (64位) Python:3.10 或更高版本 内存:至少 16GB RAM 显卡:AMD GPU (支持 Vulkan) 2. 安装必备组件 安装 Python
python Python 3.10.9 (tags/v3.10.9:1dd9be6, Dec 6 2022, 20:01:21) [MSC v.1934 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information 安装 Visual Studio Build Tools
下载 Visual Studio 2022 安装时选择: “Desktop development with C++” “Windows 10⁄11 SDK” “C++ CMake tools” 安装 CUDA Toolkit (NVIDIA 用户)
Jun 12, 2025
1 min read
AI智能体开发–环境搭建
通过modelscope加速大模型下载 要检查 ModelScope SDK 的版本,可以使用以下方法(根据你的使用环境选择):
🔧 方法一:命令行检查(推荐) 打开终端(CMD/PowerShell/Terminal) 输入以下命令:
pip show modelscope 查看输出中的 “Version” 字段:
Name: modelscope Version: 1.26.0 # ← 这就是当前版本 Summary: ModelScope: bring the notion of Model-as-a-Service to life. ... 🐍 方法二:Python 代码检查 在 Python 环境中运行:
import modelscope print(f"ModelScope SDK 版本: {modelscope.__version__}") 输出示例:
ModelScope SDK 版本: 1.26.0 📦 方法三:pip 列表查看 pip list | grep modelscope 输出:
modelscope 1.26.0 🔍 版本兼容性参考表 SDK 版本 主要特性 Python 要求 重要变更 ≥ 1.
Apr 16, 2025
1 min read
以下是一些获取深度行业研究报告的权威渠道和实用方法,涵盖免费与付费资源,并附具体操作建议:
一、金融机构与研究平台 1. 券商研报 获取方式: 东方财富Choice金融终端:覆盖95%以上券商报告(需付费账号) 慧博投研资讯:免费注册可下载部分报告(每日限3篇) 券商官网:中金公司、中信证券等头部券商官网的「研究」板块 特点:侧重二级市场,含行业趋势、公司估值模型(如DCF拆解) 案例:中金《2023年新能源汽车产业链竞争格局重构》报告中对宁德时代与比亚迪的技术路线对比 2. 投行与咨询公司 顶级机构: 麦肯锡(McKinsey):官网「Insights」板块可筛选行业报告(如《2024全球能源展望》) 贝恩(Bain):每年发布《中国私募股权市场报告》 高盛(Goldman Sachs):需通过Prime服务获取(机构客户为主) 特点:数据权威,侧重战略层面分析 二、专业数据服务商 1. 金融终端 万得(Wind): 路径:研报平台→行业研究→输入关键词(如「半导体」) 优势:可导出Excel格式的财务预测数据 彭博(Bloomberg): 使用「BI」命令调取行业分析(如 BI ESG<GO> 获取ESG行业报告) Capital IQ:适合跨境并购中的行业对标分析 2. 垂直行业数据库 头豹研究院:覆盖新兴行业(如合成生物学、XR设备),报告结构清晰 艾瑞咨询:互联网、消费领域数字化分析(如《2023年中国直播电商GMV拆解》) IDC:全球ICT市场数据(如服务器出货量季度追踪) 三、政府与学术资源 1. 官方统计机构 国家统计局:官网「统计年鉴」→「分行业数据」(如制造业PMI细分) 工信部:发布《中国工业和信息化发展白皮书》(含5G、新材料等规划) 海关总署:查询行业进出口数据(如光伏组件出口月度统计) 2. 学术论文与智库 知网/万方:搜索「行业分析+CSSCI期刊」获取学术级报告 中国信通院:通信、人工智能领域政策解读(如《全球数字经济白皮书》) 赛迪智库:制造业转型升级路径分析(含产能利用率等独家指标) 四、行业会议与产业链资源 1. 上市公司交流 财报说明会:通过「全景网」等平台参与,获取管理层对行业预判 投资者关系平台:如「上证e互动」提问行业共性问题(如「公司如何看待钠电池对锂电的替代速度?」) 2.
Apr 16, 2025
2 min read
以下是构建证券投资Agent的系统化设计方案,涵盖架构设计、核心功能与技术实现路径,结合自动化分析与决策优势:
一、股票投资Agent架构设计 graph TD A[数据源] --> B[数据采集层] B --> C[数据处理层] C --> D[分析决策层] D --> E[执行层] D --> F[监控反馈层] E --> G[交易平台] F --> D G --> H[用户终端] 1. 数据采集层 数据源类型: 市场行情:实时K线/Tick数据(通过CTP接口或Wind API) 基本面数据:财务报表、行业研报(Tushare/同花顺iFinD) 另类数据:社交媒体情绪(Twitter/雪球情感分析)、供应链数据(海关进出口) 技术实现: 使用Python异步框架(如Celery)实现多源数据并行抓取 部署增量更新机制(如记录最后采集时间戳) 2. 数据处理层 关键处理模块:
# 示例:技术指标计算引擎 def compute_technical(df): df['MA20'] = ta.SMA(df['close'], timeperiod=20) df['RSI'] = ta.RSI(df['close'], timeperiod=14) df['MACD'],_,_ = ta.MACD(df['close'], fastperiod=12, slowperiod=26, signalperiod=9) return df 特征工程:
Mar 27, 2024
1 min read
本地部署
下载大模型
大模型下载
ChatGLM3
git clone https://github.com/THUDM/ChatGLM3
cd ChatGLM3
pip install -r requirements.txt
python
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("/home/wubigo/model/ZhipuAI/chatglm3-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("/home/wubigo/model/ZhipuAI/chatglm3-6b", trust_remote_code=True, device='cuda')
model = model.eval()
response, history = model.chat(tokenizer, "你好", history=[])
初始化知识库
git clone --recursive https://github.com/chatchat-space/Langchain-Chatchat.git
cd Langchain-Chatchat
pip install -r requirements.txt
python copy_config_example.py
python init_database.py --recreate-vs
启动服务
python startup.py -a
Mar 19, 2024
2 min read
运行GLM报错
RuntimeError: CUDA out of memory. Tried to allocate 30.00 MiB (GPU 0; 7.43 GiB total capacity; 6.58 GiB already allocated; 30.94 MiB free; 6.79 GiB reserved in total by PyTorch) 检查GPU内存使用情况 nvidia-smi Mon Mar 18 23:59:31 2024 +---------------------------------------------------------------------------------------+ | NVIDIA-SMI 535.161.07 Driver Version: 535.161.07 CUDA Version: 12.2 | |-----------------------------------------+----------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M.
Jan 31, 2024
1 min read
BACnet简介 BACnet协议(A Data Communication Protocol for Building Automation and Control Networks),是由美国采暖、制冷和空调工程师协会(ASHRAE)制定的一个楼宇自动控制技术标准文件,BACnet协议最根本的目的是提供一种楼宇自动控制系统实现互操作的方法。BACnet协议并不能简单的认为是一种应用层的协议,而是包含四个层次的简化分层体系结构,这四层相当于OSI模型中的物理层、数据链路层、网络层和应用层。BACnet是用于楼宇自动化和控制网络的简短形式的数据通信协议。BACnet是主要行业供应商产品中常用的自动化和控制协议之一.BACnet应用包括照明控制,安全,消防,报警,HVAC(加热,通风,空调和与公用事业公司的接口)
BACnet物理层 BACnet上层不依赖于物理层。BACnet物理层使BACnet可以在不同的网络上实现。BACnet物理层已指定用于以下内容: - ARCNET - 以太网 - IP隧道 - BACnet / IP - RS-232 (RS232用于点对点通信。RS485支持最多32个节点,距离为1200米,速率为76Kbps) - RS485 - Lonworks / LonTalk
服务原语 与ISO服务中的约定用法一致,BACnet中两个对等应用进程间的信息交换,被表示成抽象服务原语的交换。这些服务原语用来传递一些特定的服务参数,本协议定义了四种服务原语:请求(request)、指示(indication)、响应(response)和证实(confirm)。 同样,本协议定义了下列几种服务:有证实(confirmed)服务:用CONF_SERV标记,表示客户方通过具体的服务请求实例向服务器方请求服务,服务器方通过响应请求来为客户方提供服务。存在客户/服务器模型、区分“请求方BACnet用户”和“响应方BACnet用户”等。 无证实(unconfirmed)服务:用UNCONF_SERV标记,只有“发送方BACnet用户”和“接收方BACnet用户”的概念,不存在客户/服务器模型,只有发送方和接收方,而不是请求-响应对。 分段确认(segment acknowledge)服务:用SEGMENT_ACK标记,为了实现长报文(长度大于通信网络、收/发设备所支持的长度)的传输,BACnet采取了应用层报文分段的机制来对报文进行分段。在BACnet中只有有证实请求(Confirmed-Request)和复杂确认(Complex-ACK)报文可能需要分段,因此分段还是BACnet的一个可选特性。 另外,还有差错(ERROR)服务,拒绝(REJECT)服务,中止(ABORT)服务。 因此,根据不同的服务类型和原语类型,据有下表所示的服务原语。这些原语中的信息,由各种协议数据单元(PDU:Protocol Data Unit)传递。
服务选择 BACnet定义了以下几类可选择的服务,用于两个对等实体之间的交互。
文件访问服务 定义一组访问和操作在BACnet设备中的文件的服务。文件只是一个抽象的概念,表示一个任意长度和意义的字节集合的网络可见形式。 基本读文件(AtomicReadFile)服务:一个客户端的BACnet用户使用基本读文件服务对某个文件进行一个“打开-读出-关闭”的操作。 基本写文件(AtomicWriteFile)服务:一个客户端的BACnet用户使用基本写文件服务对某个字节流进行一个“打开-写入-关闭”的操作,将它写入到文件的某个位置。
对象访问服务 远程设备管理服务 定义一组远程设备管理服务。 - 设备通信控制(DeviceCommunicationControl)服务。 - 有证实专有传输(ConfirmedPrivateTransfer)服务。 - 无证实专有传输(UnconfirmedPrivateTransfer)服务。 - 重新初始化设备(ReinitializeDevice)服务。 - 有证实文本报文(ConfirmedTextMessage)服务。 - 无证实文本报文(UnconfirmedTextMessage)服务。 - 时间同步(TimeSynchronization)服务。
ModBus简介 Modbus 协议广泛应用于工业自动化、建筑自动化、环境监测、能源管理等领域,以下是一些常见的应用场景:工业自动化:Modbus 是一种常用的通信协议,可以实现工厂中各种设备的数据采集、控制和监测,如传感器、PLC、变频器、电机驱动器、控制器等设备。建筑自动化:Modbus 可以用于建筑自动化系统中 modbus 是工业现场较为常用的总线协议,是应用层报文传输协议(OSI模型第7层),支持1对1传输、1对多传输。支持的模式有:modbus-TCP、modbus-RTU、modbus-ASCII。其中modbus-TCP是基于TCP/IP之上的应用协议。modbus-RTU、modbus-ASCII 是串口协议,主要的电气接口有:RS232、RS485。
Nov 24, 2023
1 min read
生成式通用人工智能的主要推动力
transformer在长序列文本数据模式提取和海量数据处理方面碾压RNN
预训练模型
预训练模型成功的应用到NLP领域
Nov 8, 2023
1 min read
默认会化过期时间 开源的EMQ设置的会话过期时间为 5 分钟,最大消息数为 1000 条,且不保存 QoS 0 消息。
针对这两点,MQTT 5.0 提供了 Clean Start 和 Session Expiry Interval 这两个连接字段来控制会话的生命周期
Session Expiry Interval Session Expiry Interval 同样位于 CONNECT 报文的可变报头,不过它是一个可选的连接 属性。 它被用来指定会话在网络断开后能够在服务端保留的最长时间,如果到达过期时间但网络连接仍未恢复, 服务端就会丢弃对应的会话状态。它有三个典型的值:
没有指定此属性或者设置为 0,表示会话将在网络连接断开时立即结束。 设置为一个大于 0 的值,则表示会话将在网络连接断开的多少秒之后过期。 设置为 0xFFFFFFFF,即 Session Expiry Interval 属性能够设置的最大值时,表示会话永不过期。 服务端使用 Client ID 来唯一地标识每个会话,如果客户端想要在连接时复用之前的会话,那么必须使用与此前一致的 Client ID
我们需要正确地评估持久会话对服务器资源的影响,会话过期时间越长,服务端需要花费的存储资源就可能越多。 虽然服务端通常并不会无限制地为客户端缓存消息,以 EMQX 为例,默认情况下每个客户端会话中能够缓存的最大消息数量为1000
数据存储 路由数据是物联网连接集群中的核心数据,它存储设备订阅主题与集群节点的映射关系,在消息发布时根据消息主题信息查找所有匹配的节点, 用于集群内节点间的消息派发。在EMQX的实现中,路由数据存在于集群中的所有节点上。客户端的主题订阅数据,则只保存在连接所在的节点上, 用于节点内部派发消息到客户端。当客户端连接到集群某个节点订阅某个新的主题时,就会生成一条路由数据,该数据最终会同步到集群所有节点上, 每个节点都可以通过本地查询找到任意主题对应的订阅节点列表。当客户端发布消息时,连接所在节点会根据消息主题检索路由数据得到所有订阅 节点的信息,然后将消息派发到这些节点上.
OPC OPC UA 是一种面向工业自动化的机器到机器通信协议,由 OPC 基金会开发维护。OPC UA 提供一种标准化的方式, 使不同的设备和系统能够互相通信。 Neuron OPC UA 插件可作为客户端访问 KEPServerEX、Industrial Gateway OPC Server、Prosys Simulation Server、Ignition 等 OPC UA 服务器, 也可以直接访问硬件设备的内置 OPC UA Server,如西门子 S7-1200 型 PLC 的内置 Server、 欧姆龙 NJ 系列 PLC 的内置 Server 等。
Apr 25, 2023
2 min read
WebGPU is the new GPU API that available in browser. It’s one of the only 2 APIs that currently available to access the GPU from browser (the other is WebGL).
WebGPU is the successor to WebGL, providing better compatibility with modern GPUs, support for general-purpose GPU computations, faster operations, and access to more advanced GPU features.
WebGL基本问题 WebGL has some fundamental issues that needed addressing:
Since WebGL’s release, a new generation of native GPU APIs have appeared — the most popular being Microsoft’s Direct3D 12, Apple’s Metal, and The Khronos Group’s Vulkan — which provide a multitude of new features.
Apr 24, 2023
1 min read
学习英语
重要的是speaking和writing
学习编程
重要的是交付一个可以工作的产品和项目
Apr 18, 2023
2 min read
大模型下载 pip install modelscope from modelscope.hub.snapshot_download import snapshot_download model_dir = snapshot_download('ZhipuAI/chatglm3-6b', cache_dir='./model', revision='master') 下载 https://www.modelscope.cn/models/ZhipuAI/chatglm2-6b
nvidia-smi Failed to initialize NVML: Driver/library version mismatch 这个问题出现的原因是kernel mod 的 Nvidia driver 的版本没有更新,一般情况下,重启机器就能够解决, 如果因为某些原因不能够重启的话,也有办法reload kernel mod。
简单来看,就两步
unload nvidia kernel mod reload nvidia kernel mod 执行起来就是
sudo rmmod nvidia sudo nvidia-smi 分词器(Tokenizer) tokenization算法大致经历了从word/char到subword的进化.
目前有三种主流的Subword分词算法,分别是Byte Pair Encoding (BPE), WordPiece和Unigram Language Model
Back in the ancient times, before 2013, we usually encoded basic unigram tokens using simple 1’s and 0’s in a process called One-Hot encoding.
Apr 8, 2023
1 min read
启动开发环境
git clone [email protected] :penpot/penpot.git
pushd penpot
./manage.sh run-devenv
检查进程运行状态
docker exec -ti penpot-devenv-main bash
root@87691e4f990c:/home# sudo -EH -u penpot tmux ls
penpot: 4 windows (created Sat Apr 8 10:27:39 2023) (attached)
Mar 16, 2023
1 min read
Arduino开发板包默认安装位置
C:\Users\bigo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.1
Arduino
Mar 11, 2023
1 min read
来源:索钧–同仁堂主任医师,索延昌之子,师从国医方和谦
食物
粥:
薏米一把,绿豆一把,莲子一把
脾
七成饱,饮食有节,细嚼慢咽,每口嚼二十到三十下。
按摩:三阴交,中脘,足三里
肺
腹式呼吸
肾
丹田撞树,一定要是树,感受到和大自然的直接互动
心血
空心拳叩击膻中穴
运动
双手并排保持端平,向下做深蹲,然后站立
养生八字
童心,蚁食,鬼欲,猴行
Jan 24, 2023
3 min read
以太网连接企业VPN内网,企业VPN内网没有外网访问权限。
显示当前的网络连接
ipconfig Windows IP 配置 以太网适配器 以太网: 连接特定的 DNS 后缀 . . . . . . . : 本地链接 IPv6 地址. . . . . . . . : fe80::7c5d:6dec:3f55:ca9f%19 IPv4 地址 . . . . . . . . . . . . : 10.177.105.14 子网掩码 . . . . . . . . . . . . : 255.255.255.128 默认网关. . . . . . . . .
Jan 23, 2023
5 min read
地点:深圳市龙华区的深圳书城
诺贝尔文学奖得主索尔·贝娄对书有一个定义,书是什么?书是广阔生活的保证人。
距离2023年还有3个半小时,我想请朋友们坐下来,在这么多“广阔生活的保证人”的陪伴下,咱们聚在一起聊聊天。今天晚上,我给你准备了22个故事,咱们开始。
《电动车与书店》
我要讲的第一个故事,是一个“补窟窿”的故事。
它就发生在我此刻所在的深圳市龙华区。
这个故事的主人公,我不知道他的姓名,我们就叫他“龙华哥”吧。他37岁,原来开工厂,这两年生意失败,工厂关了,还欠了200万的债。
这大概就是人生谷底的样子吧。
怎么办呢?偶然有一天,他发现,深圳的街头,地铁口到处都停着电动车,许多电动车的座椅上都有破洞。你想,一个多雨的亚热带城市,下雨之后,有洞的座椅坐上去,一裤子的水,会给骑车的人带来很多麻烦。于是他想到了一个对别人有用的活儿——去把这些电动车车座的破洞补上。
他就带着一些皮革贴,满大街去找电动车,补好破洞之后,再贴上一张收款二维码,上面写着:“坐凳给您补好了,扫码支付,金额您随意。”
这话听着耳熟。酒桌上常见的词儿:“我干了,您随意。”
等他忙完一天回家,打开手机,发现真的不断有人开始付款,有3块、5块、8块、20块,还有人留言感谢。
第1天操作,总共31笔,收了184块钱。要知道,他补座椅用的皮革贴,每一张的成本在一毛钱左右,所以贴了100张出去,也才10块钱的成本。诶,这个事儿能干!
第二天,收款562块,刨去皮革贴的成本30块,地铁日票25块,挣了大概有500元。
一个新的生计就这么找到了。
我不知道这个故事给你什么感受?是数字化技术带来了新的生意方式?还是中国人的道德水准在普遍性提高?
而我,倒是从这个故事中再一次看到了一个“做事的人”该有的样子。
拜托深圳的朋友,如果你的电动车恰好也被他补过洞,如果你给他打过钱,还有他的联系方式的话,帮我问候一声。就跟他说,罗胖,也被他这个故事激励到了。
这个故事给我的启发是:面对困难,有三种结果。最好的,当然是打赢困难,其次是被困难击败,但还有没有更糟糕的结果呢?
有。那就是被困难定义。
什么叫被困难定义?守株待兔的故事,大家都知道吧?那个人在树前赢了一次,就把自己定义成了“可以靠运气活下去的人”。被锁死在一次成败之中,这太糟糕了。
而我们故事当中的这位“龙华哥”,迅速地摆脱了“失败的工厂主”这个定义,开始在别处寻找机会。从制造业的工厂主,到满大街去补车座,这是多大的跨度?这是一种多么强悍的摆脱定义、重启自己的能力?
龙华区有一句话:“无奋斗,不龙华。”这就是我们中国人眼里奋斗者的样子,也是我们这代人心目中深圳精神的样子:遇到难处,一边对他人的困境保持同理心,一边不挑不拣,先从身边的小事做起。这样,很多原来看不见的,身边的小机会就会生动地浮现出来。
因为这个故事,当龙华区的朋友邀请我们把跨年演讲放到这里,我们马上就接受了邀请。场地就定在龙华文体中心,一座刚刚落成的体育馆。
但万万没想到,刚刚被这个“补窟窿”的故事激励到,马上就轮到我们自己补窟窿了。
每年,准备跨年演讲,都有一个月的闭关期。2022年11月底,当我们来到深圳的时候,全国还在大面积封控。
你可以回想一下:一个月前,那个时候的社会氛围和自己的心境。
有一天看场地,我站在体育馆里,突然觉得,坏了。
我完全没法想象:今年还能做那种大集会、大舞台、大屏幕式的演讲。即使深圳本地的防疫情况允许,即使我还有勇气像去年那样,一个人面对一万个空座位讲,而如果那个时候的你,还被困在家里,看见这个场景,你会作何感想?我又情何以堪?
我们准备了半年的跨年演讲,就在一个月前,突然变得非常尴尬。简直是进退维谷。
刚才我讲了一个“补窟窿”的故事。现在,我自己突然就面对这么大一个窟窿要补。怎么办?
正当一筹莫展的时候,那天,我们走出原定的龙华文体中心,一扭头,就看见了这座深圳书城,也就是我今天站的这个地方。一打听,这里居然还是全国首家5G智慧书城。
灵光一闪,一个新想法就冒出来了:今年能不能干脆不用大舞台?也不搞大集会?我就在这个书城里,边走边讲。观众也不用多,因为这里有书香的加持,更重要的是,我可以走到真实的观众中间。
过去这三年,我们多缺和真实的人近距离、面对面相处的机会啊。
Nov 30, 2022
2 min read
torch.multinominal方法可以根据给定权重对数组进行多次采样,返回采样后的元素下标
参数说明 input :权重,也就是取每个值的概率,可以是1维或2维。可以不进行归一化。 num_samples : 采样的次数。如果input是二维的,则表示每行的采样次数 replacement :默认值值是False,即不放回采样。如果replacement =False,则num_samples必须小于input中非零元素的数目
按权重采样 从四个元素中随机选择两个,每个元素被选择到的概率分别为:[0.2, 0.2, 0.3, 0.3]:
>>> weights = torch.Tensor([0.9, 0.25, 0.1, 0.15]) # 采样权重 >>> torch.multinomial(weights, 2) tensor([0, 1]) >>> torch.multinomial(weights, 2) tensor([1, 3]) >>> torch.multinomial(weights, 2) tensor([0, 3]) >>> torch.multinomial(weights, 2) tensor([3, 1]) >>> torch.multinomial(weights, 2) tensor([1, 0]) >>> torch.multinomial(weights, 2) tensor([1, 0]) >>> torch.multinomial(weights, 2) tensor([0, 1]) >>> torch.multinomial(weights, 2) tensor([0, 2]) >>> torch.multinomial(weights, 2) tensor([3, 0]) >>> torch.
Nov 11, 2022
2 min read
下载 Docker 二进制文件(离线安装包) 下载地址:https://download.docker.com/linux/static/stable/x86_64/
注:本文使用 /x86_64/docker-18.06.1-ce.tgz,注意对应操作系统类型。
tar tf docker-20.10.9.tgz docker/ docker/containerd-shim-runc-v2 docker/dockerd docker/docker-proxy docker/ctr docker/docker docker/runc docker/containerd-shim docker/docker-init docker/containerd tar zxf docker-18.06.1-ce.tgz sudo cp docker/* /usr/bin/ sudo dockerd & 验证是否安装成功,执行docker info命令
docker info 注册成系统服务 /etc/systemd/system/docker.service
[Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target docker.socket firewalld.service Wants=network-online.target Requires=docker.socket [Service] Type=notify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.