first commit
@@ -0,0 +1,50 @@
|
||||
---
|
||||
profileName: Happy Again
|
||||
postId: "3548"
|
||||
postType: post
|
||||
categories:
|
||||
- 15
|
||||
---
|
||||
本文介绍在**Linux**操作系统**Ubuntu**版本中,通过配置,实现以**非root用户**身份,进行**Docker**各项操作的具体方法。
|
||||
|
||||
在文章[疯狂学习GIS:Docker环境在Ubuntu系统中的配置](https://zhuanlan.zhihu.com/p/675507675)中,我们介绍了开源容器化平台和工具集**Docker**的详细配置方法;配置完毕后,**Docker**就已经可以正常使用了,但是还有着一个小问题——我们在**Unix**系统中进行**Docker**的各项操作时,由于**Docker**是和**Unix**的[套接字](https://zhida.zhihu.com/search?content_id=238900875&content_type=Article&match_order=1&q=%E5%A5%97%E6%8E%A5%E5%AD%97&zhida_source=entity)(**Socket**)绑定的,而套接字归属于系统的**root**用户,非**root**用户如果需要访问它,就只能通过`sudo`命令实现;这也导致了,我们运行**Docker**时都必须要以**root**用户身份(也就是通过`sudo`命令)来实现。这就使得我们在执行很多和**Docker**有关的命令时,都需要输入一次**root**用户的密码,导致较为麻烦。那么,我们是否可以取消这一个限制呢?
|
||||
|
||||
答案是可以的,我们可以通过新建一个**Unix**[用户组](https://zhida.zhihu.com/search?content_id=238900875&content_type=Article&match_order=1&q=%E7%94%A8%E6%88%B7%E7%BB%84&zhida_source=entity)的方式,来实现上述需求。我们需要建立一个用户组,将其命名为`docker`,并将我们当前的非**root**用户放入这一个用户组中;这样操作之后,当**Docker**启动时,其会创建一个可供`docker`用户组成员访问的**Unix**套接字,从而使得我们可以用非**root**用户身份来进行后续的各项操作。
|
||||
|
||||
为完成上述工作,具体需要的操作如下。其中,本文所涉及的全部代码,都在终端中执行即可。
|
||||
|
||||
首先,执行如下的代码,创建名为`docker`的一个用户组。其中,`groupadd`是一个**Linux**系统命令,用于创建用户组;`docker`就是我们接下来要创建的用户组的名称。
|
||||
|
||||
运行上述代码,如下图所示。
|
||||
|
||||

|
||||
|
||||
接下来,执行如下的代码,将我们当前的非**root**用户放入刚刚创建的用户组中。其中,`usermod`是一个**Linux**系统命令,用于修改用户的属性和组关联;`-aG`是`usermod`命令的选项,其中`-a`表示追加(**Append**),`-G`表示指定用户所属的附加组;`docker`是要将用户添加到的用户组的名称;`$USER`是一个环境变量,表示当前用户的用户名。
|
||||
|
||||
```bash
|
||||
sudo usermod -aG docker $USER
|
||||
```
|
||||
|
||||
运行上述代码,如下图所示。
|
||||
|
||||

|
||||
|
||||
随后,执行如下的代码,切换当前会话的有效组。其中,`newgrp`是一个**Linux**系统命令,用于切换当前会话的有效组;`docker`是我们要切换到的目标组的名称。
|
||||
|
||||
运行上述代码,如下图所示。
|
||||
|
||||

|
||||
|
||||
随后,就完成了我们的配置工作。此时,我们可以通过如下的代码,验证一下我们是否已经成功完成前述配置;该命令会下载一个测试映像并在容器中运行它。
|
||||
|
||||
运行上述代码,如下图所示。
|
||||
|
||||

|
||||
|
||||
如果出现了上图所示的界面,就表示我们前述配置已经成功完成。在我们上一篇文章文章[疯狂学习GIS:Docker环境在Ubuntu系统中的配置](https://zhuanlan.zhihu.com/p/675507675)中,当时也用了这一句代码来测试**Docker**是否配置成功,而当时这一句代码的前面是需要有`sudo`字样的,如下图所示;而经过我们上述配置,就无需这个`sudo`了。
|
||||
|
||||

|
||||
|
||||
当然,如果大家运行了前述`docker run hello-world`代码后,出现了报错的情况,大家则可以参考**Docker**的[官方网站](https://link.zhihu.com/?target=https%3A//docs.docker.com/engine/install/linux-postinstall/),其中有对这一问题的说明。
|
||||
|
||||
至此,大功告成。
|
||||
|
After Width: | Height: | Size: 152 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 6.8 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 152 KiB |
@@ -0,0 +1,350 @@
|
||||
---
|
||||
profileName: Happy Again
|
||||
postId: "37"
|
||||
postType: post
|
||||
categories:
|
||||
- 3
|
||||
---
|
||||
---
|
||||
### 一、国际主流工具对比
|
||||
|
||||
###### 1\. Windsurf(Codeium公司)
|
||||
|
||||
- **核心功能** :代理型AI编程(代码导航/修改/命令执行)、浏览器DOM访问、网页研究功能
|
||||
|
||||
 
|
||||
- **语言支持** :70+语言,包括Python/Java/JavaScript/Rust等\[\[22-23\]\[25\]\]
|
||||
- **开发环境** :独立IDE,兼容VS Code/JetBrains
|
||||
- **定价模式** :
|
||||
- 免费版:基础模型(Llama 3.1 70B)
|
||||
- Pro版($15/月):500高级提示+1500流操作信用点
|
||||
- 企业版:定制化部署与私有代码库微调
|
||||
|
||||
###### 2\. GitHub Copilot(微软)
|
||||
|
||||
- **核心功能** :智能补全/函数生成/跨文件理解/团队协作优化
|
||||

|
||||
- **语言支持** :Python/JS/TS/Go/Ruby等37种主流语言
|
||||
- **开发环境** :深度集成VS Code/JetBrains/Neovim
|
||||
- **特点** :
|
||||
- **高效代码补全** :基于OpenAI Codex模型,实时分析代码上下文生成高质量建议,尤其擅长Python、JavaScript、Java等语言 [1](https://blog.csdn.net/xidianjiapei001/article/details/144374563 "1") 。
|
||||
- **跨语言支持** :覆盖50+编程语言,满足多场景开发需求 [1](https://blog.csdn.net/xidianjiapei001/article/details/144374563 "1") 。
|
||||
- **学习能力** :适应开发者代码风格持续优化建议,但可能导致过度依赖 [1](https://blog.csdn.net/xidianjiapei001/article/details/144374563 "1") 。
|
||||
- **缺点** :
|
||||
- **隐私问题** :需访问用户代码库,引发敏感数据泄露风险 [1](https://blog.csdn.net/xidianjiapei001/article/details/144374563 "1") 。
|
||||
- **成本较高** :10美元/月(个人)或100美元/年,免费试用期仅30天 [1](https://blog.csdn.net/xidianjiapei001/article/details/144374563 "1") 。
|
||||
- **项目级局限** :无法自主理解整个代码库,需手动选择文件范围 [2](https://blog.csdn.net/KeepAndWin/article/details/142444847 "2") 。
|
||||
- **适用场景** :通用编程辅助、多语言开发、GitHub生态项目 [1](https://blog.csdn.net/xidianjiapei001/article/details/144374563 "1") 。
|
||||
|
||||
###### 3\. Cursor(独立开发)
|
||||
|
||||
- **特点** :
|
||||
- **独立IDE定位** :基于VS Code开发,深度融合AI功能,提供端到端开发体验 [2](https://blog.csdn.net/KeepAndWin/article/details/142444847 "2") 。
|
||||
- **项目级代码理解** :加载项目后自动解析全局代码,无需手动选择文件 [2](https://blog.csdn.net/KeepAndWin/article/details/142444847 "2") 。
|
||||
- **多模态能力** :支持上传图片生成代码(如页面样式图转前端代码) [2](https://blog.csdn.net/KeepAndWin/article/details/142444847 "2") 。
|
||||
- **中文支持** :安装时可定制中文界面及输出语言 [2](https://blog.csdn.net/KeepAndWin/article/details/142444847 "2") 。
|
||||
- **Composer功能** :支持跨文件批量修改,提升效率 [2](https://blog.csdn.net/KeepAndWin/article/details/142444847 "2") 。
|
||||
- **缺点** :
|
||||
- **基础功能薄弱** :与VS Code相比,部分核心编辑功能缺失 [1](https://blog.csdn.net/xidianjiapei001/article/details/144374563 "1") 。
|
||||
- **稳定性差** :频繁出现服务中断或响应延迟 [1](https://blog.csdn.net/xidianjiapei001/article/details/144374563 "1") 。
|
||||
- **隐私风险** :中大型项目使用需警惕数据外泄,商业版提供隐私保护但成本翻倍 [2](https://blog.csdn.net/KeepAndWin/article/details/142444847 "2") 。
|
||||
- **费用** :免费版功能受限;Pro版20美元/月,集成多模型API无需额外配置 [2](https://blog.csdn.net/KeepAndWin/article/details/142444847 "2") 。
|
||||
- **适用场景** :快速原型开发、项目级代码生成、非本地部署场景 [2](https://blog.csdn.net/KeepAndWin/article/details/142444847 "2") 。
|
||||
|
||||
###### 4\. Bolt.new(StackBlitz)
|
||||
|
||||
- **核心功能** :全栈对话式开发/无本地部署/前端框架深度支持
|
||||
- **语言支持** :Python/JS/PHP/Java/Ruby,专注Web开发
|
||||
- **开发环境** :浏览器在线IDE,支持Next.js/React/Vue
|
||||
- **定价模式** :
|
||||
- 免费版:150K tokens/天
|
||||
- Pro版:$20/月(10M tokens)
|
||||
|
||||
###### 5\. Claude AI Artifacts(Anthropic)
|
||||
|
||||
- **核心功能** :长上下文推理(200K tokens)/代码风格定制/安全审查
|
||||
- **语言支持** :全栈开发语言,侧重逻辑复杂度高的场景
|
||||
- **开发环境** :独立平台+API集成
|
||||
- **定价模式** :
|
||||
- API:$3/百万输入token(Sonnet模型)
|
||||
- 团队版:$30/用户/月
|
||||
|
||||
### 二、国内主流工具对比
|
||||
|
||||
###### 1\. 通义灵码(阿里云)
|
||||
|
||||
- **核心功能** :单元测试生成/异常排查/阿里云服务深度集成
|
||||
- **语言支持** :Java/Python/JS/Go等,适配SpringBoot/Dubbo框架
|
||||
- **开发环境** :VS Code/JetBrains/阿里云IDE
|
||||
- **定价模式** :个人免费,企业版按云资源消耗计费
|
||||
|
||||
###### 2\. CodeGeeX(智谱AI)
|
||||
|
||||
- **核心功能** :代码翻译/注释生成/多语言互译
|
||||
- **语言支持** :100+语言,含C/C++/Python/JS/Rust
|
||||
- **开发环境** :VS Code/JetBrains/HBuilderX
|
||||
- **定价模式** :完全开源免费
|
||||
|
||||
###### 3\. 文心快码(百度)
|
||||
|
||||
- **核心功能** :中文语义理解/多模态交互(文本+流程图生成)
|
||||
- **语言支持** :Python/Java/JS,中文注释优化显著
|
||||
- **开发环境** :百度智能云IDE+VS Code插件
|
||||
- **定价模式** :基础功能免费,企业版¥199/用户/月
|
||||
|
||||
###### 4\. 腾讯云AI代码助手
|
||||
|
||||
- **核心功能** :业务代码生成/混元大模型驱动/腾讯生态集成
|
||||
- **语言支持** :Go/Java/Python/C++/TS等15种
|
||||
- **开发环境** :VS Code/JetBrains/腾讯工蜂
|
||||
- **定价模式** :免费使用,企业级SLA需购买云套餐
|
||||
|
||||
###### 5\. 豆包MarsCode(字节跳动)
|
||||
|
||||
- **核心功能** :低代码生成/实时协作/AIGC应用快速搭建
|
||||
- **语言支持** :Python/JS/TS,侧重移动端与Web场景
|
||||
- **开发环境** :浏览器IDE+CLI工具
|
||||
- **定价模式** :完全免费
|
||||
|
||||
### 三、更多工具
|
||||
|
||||
#### 3、Cline
|
||||
|
||||
- **特点** :
|
||||
- **开源免费** :基于VS Code插件形式提供,支持JetBrains系列IDE [1](https://blog.csdn.net/xidianjiapei001/article/details/144374563 "1") 。
|
||||
- **灵活模型选择** :兼容OpenAI、Anthropic、DeepSeek等多模型API,成本可选(如Google Gemini模型免费) [1](https://blog.csdn.net/xidianjiapei001/article/details/144374563 "1") 。
|
||||
- **成本效益高** :使用DeepSeek等模型时,单位token成本显著低于Copilot [2](https://blog.csdn.net/KeepAndWin/article/details/142444847 "2") 。
|
||||
- **人机协作** :每一步操作需用户确认,保障安全性 [1](https://blog.csdn.net/xidianjiapei001/article/details/144374563 "1") 。
|
||||
- **缺点** :
|
||||
- **功能局限** :依赖外部API,部分高级功能受限于模型性能 [2](https://blog.csdn.net/KeepAndWin/article/details/142444847 "2") 。
|
||||
- **开源劣势** :缺乏商业化支持,复杂任务处理能力较弱 [1](https://blog.csdn.net/xidianjiapei001/article/details/144374563 "1") 。
|
||||
- **费用** :免费模式(需绑定银行卡),付费版按token消耗计费(如DeepSeek模型可免费使用) [1](https://blog.csdn.net/xidianjiapei001/article/details/144374563 "1") 。
|
||||
- **适用场景** :成本敏感型项目、多模型实验、小型团队协作 [2](https://blog.csdn.net/KeepAndWin/article/details/142444847 "2") 。
|
||||
|
||||
---
|
||||
|
||||
#### 4\. Tabnine
|
||||
|
||||
- **特点** :
|
||||
- **本地部署支持** :提供小型私有模型,支持本地运行,保障代码隐私 [1](https://blog.csdn.net/xidianjiapei001/article/details/144374563 "1") 。
|
||||
- **资源效率高** :本地模型占用低,响应速度快(牺牲部分准确性) [1](https://blog.csdn.net/xidianjiapei001/article/details/144374563 "1") 。
|
||||
- **多语言覆盖** :支持10+主流语言,适合轻量级开发场景 [1](https://blog.csdn.net/xidianjiapei001/article/details/144374563 "1") 。
|
||||
- **缺点** :
|
||||
- **中文支持弱** :中文场景表现不及国内工具(如通义灵码) [2](https://blog.csdn.net/KeepAndWin/article/details/142444847 "2") 。
|
||||
- **功能单一** :仅提供基础代码补全,缺少项目级理解和自动化修复 [1](https://blog.csdn.net/xidianjiapei001/article/details/144374563 "1") 。
|
||||
- **费用** :
|
||||
- 免费基础版(每日调用次数限制)。
|
||||
- 专业版12美元/月,支持私有化部署 [1](https://blog.csdn.net/xidianjiapei001/article/details/144374563 "1") 。
|
||||
- **适用场景** :隐私敏感场景(如企业内部开发)、资源受限设备(低配电脑) [1](https://blog.csdn.net/xidianjiapei001/article/details/144374563 "1") 。
|
||||
|
||||
---
|
||||
|
||||
#### 5\. Amazon CodeWhisperer
|
||||
|
||||
- **特点** :
|
||||
- **AWS深度集成** :针对S3、Lambda等服务提供优化建议,生成代码符合AWS最佳实践 [1](https://blog.csdn.net/xidianjiapei001/article/details/144374563 "1") 。
|
||||
- **安全性强** :免费版提供代码安全扫描,识别漏洞(如权限过度开放) [3](https://blog.csdn.net/qq_42672770/article/details/137124170 "3") 。
|
||||
- **语言支持** :专注于Python、Java等AWS常用语言,优化建议精准 [1](https://blog.csdn.net/xidianjiapei001/article/details/144374563 "1") 。
|
||||
- **缺点** :
|
||||
- **生态绑定** :非AWS用户使用场景有限 [1](https://blog.csdn.net/xidianjiapei001/article/details/144374563 "1") 。
|
||||
- **延迟较高** :复杂查询响应时间长于竞品(如GitHub Copilot) [2](https://blog.csdn.net/KeepAndWin/article/details/142444847 "2") 。
|
||||
- **费用** :
|
||||
- 免费层(个人非商业用途,每日调用上限低)。
|
||||
- 企业版需联系AWS销售团队 [1](https://blog.csdn.net/xidianjiapei001/article/details/144374563 "1") 。
|
||||
- **适用场景** :AWS云开发环境、企业级安全合规项目 [1](https://blog.csdn.net/xidianjiapei001/article/details/144374563 "1")
|
||||
|
||||
#### 7\. Codeium
|
||||
|
||||
- **特点** :
|
||||
- **多模型覆盖** :支持OpenAI、Claude、DeepSeek等,提供自然语言搜索功能 [2](https://blog.csdn.net/KeepAndWin/article/details/142444847 "2") 。
|
||||
- **低成本替代** :使用DeepSeek等模型时成本远低于Copilot(节省70%以上) [2](https://blog.csdn.net/KeepAndWin/article/details/142444847 "2") 。
|
||||
- **易用性** :内置聊天框,支持代码片段解释及错误修复 [3](https://blog.csdn.net/qq_42672770/article/details/137124170 "3") 。
|
||||
- **缺点** :
|
||||
- **延迟略高** :部分场景响应速度慢于Cursor(如复杂函数生成) [2](https://blog.csdn.net/KeepAndWin/article/details/142444847 "2") 。
|
||||
- **版权争议** :训练数据透明度不足,潜在侵权风险 [2](https://blog.csdn.net/KeepAndWin/article/details/142444847 "2") 。
|
||||
- **费用** :完全免费(模型间可能存在性能差异) [3](https://blog.csdn.net/qq_42672770/article/details/137124170 "3") 。
|
||||
- **适用场景** :教育机构、中小型团队、低成本项目 [3](https://blog.csdn.net/qq_42672770/article/details/137124170 "3") 。
|
||||
|
||||
---
|
||||
|
||||
#### 8\. Replit Ghostwriter
|
||||
|
||||
- **特点** :
|
||||
- **在线IDE集成** :仅支持Replit平台,适合快速上手和轻量级开发 [3](https://blog.csdn.net/qq_42672770/article/details/137124170 "3") 。
|
||||
- **即时反馈** :代码建议延迟较低,适合新手学习 [3](https://blog.csdn.net/qq_42672770/article/details/137124170 "3") 。
|
||||
- **社区驱动** :代码库开放,支持用户贡献模板 [3](https://blog.csdn.net/qq_42672770/article/details/137124170 "3") 。
|
||||
- **缺点** :
|
||||
- **功能受限** :无法跨文件或项目级理解,仅限Replit环境 [3](https://blog.csdn.net/qq_42672770/article/details/137124170 "3") 。
|
||||
- **隐私漏洞** :未明确数据加密措施,不适合敏感项目 [3](https://blog.csdn.net/qq_42672770/article/details/137124170 "3") 。
|
||||
- **费用** :免费,但高级功能需订阅Replit付费计划 [3](https://blog.csdn.net/qq_42672770/article/details/137124170 "3") 。
|
||||
- **适用场景** :教学场景、入门学习、快速验证小型创意 [3](https://blog.csdn.net/qq_42672770/article/details/137124170 "3") 。
|
||||
|
||||
---
|
||||
|
||||
#### 9\. Continue Extension
|
||||
|
||||
- **特点** :
|
||||
- **本地大模型支持** :兼容LM Studio、Ollama等本地部署方案,离线使用且数据不外泄 [2](https://blog.csdn.net/KeepAndWin/article/details/142444847 "2") 。
|
||||
- **隐私优先** :无需联网,所有模型推理在本地完成,适合企业级项目 [2](https://blog.csdn.net/KeepAndWin/article/details/142444847 "2") 。
|
||||
- **多模型兼容** :支持混合使用本地模型(如Llama 3)和闭源API(如Claude 3.5) [2](https://blog.csdn.net/KeepAndWin/article/details/142444847 "2") 。
|
||||
- **缺点** :
|
||||
- **配置复杂** :依赖本地模型部署能力,新手使用门槛高 [2](https://blog.csdn.net/KeepAndWin/article/details/142444847 "2") 。
|
||||
- **功能分散** :依赖插件管理多模型调用,用户体验不如Cursor一体化流畅 [2](https://blog.csdn.net/KeepAndWin/article/details/142444847 "2") 。
|
||||
- **费用** :完全免费(仅需本地算力投入) [2](https://blog.csdn.net/KeepAndWin/article/details/142444847 "2") 。
|
||||
- **适用场景** :高隐私需求(金融、军工)、本地化部署(如无网络环境) [2](https://blog.csdn.net/KeepAndWin/article/details/142444847 "2") 。
|
||||
|
||||
---
|
||||
|
||||
#### 10\. Sourcegraph Cody
|
||||
|
||||
- **特点** :
|
||||
- **代码库级搜索** :结合Sourcegraph代码搜索功能,实现跨仓库理解(如依赖链分析) [3](https://blog.csdn.net/qq_42672770/article/details/137124170 "3") 。
|
||||
- **企业级适配** :支持大规模代码库解析,适合维护复杂项目 [3](https://blog.csdn.net/qq_42672770/article/details/137124170 "3") 。
|
||||
- **缺点** :
|
||||
- **部署门槛高** :需与Sourcegraph平台深度整合,中小企业难以快速上手 [3](https://blog.csdn.net/qq_42672770/article/details/137124170 "3") 。
|
||||
- **性能瓶颈** :在超大规模项目中响应延迟显著高于其他工具 [3](https://blog.csdn.net/qq_42672770/article/details/137124170 "3") 。
|
||||
- **费用** :免费开源版(功能有限);企业版需购买Sourcegraph许可 [3](https://blog.csdn.net/qq_42672770/article/details/137124170 "3") 。
|
||||
- **适用场景** :大型组织代码维护、跨团队协作、依赖分析 [3](https://blog.csdn.net/qq_42672770/article/details/137124170 "3") 。
|
||||
|
||||
---
|
||||
|
||||
#### 11\. Devin
|
||||
|
||||
- **特点** (基于参考资料隐含分析):
|
||||
- **自主代理模式** :能独立解决GitHub Issues,通过长期学习优化纠错 [3](https://blog.csdn.net/qq_42672770/article/details/137124170 "3") 。
|
||||
- **跨模型协作** :整合多模型能力处理复杂任务(如部署CI/CD流水线) [3](https://blog.csdn.net/qq_42672770/article/details/137124170 "3") 。
|
||||
- **缺点** :
|
||||
- **效率待提升** :执行速度与人类开发者仍有差距,需迭代优化 [3](https://blog.csdn.net/qq_42672770/article/details/137124170 "3") 。
|
||||
- **费用** :未公开,可能针对企业级用户提供定制方案 [3](https://blog.csdn.net/qq_42672770/article/details/137124170 "3") 。
|
||||
- **适用场景** :自动化运维、长期任务托管(如持续集成) [3](https://blog.csdn.net/qq_42672770/article/details/137124170 "3") 。
|
||||
|
||||
### 四、综合比较
|
||||
|
||||
##### 一、主流工具概览
|
||||
|
||||
| 工具名称 | 首次发布 | 类型 | 支持语言 | 开发商/团队 | 开源性 | 适用场景 |
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
| GitHub Copilot | 2021 | IDE插件 | 50+ | GitHub/OpenAI | ❌ | 全球通用,多语言需求 |
|
||||
| Cursor | 2022 | 独立IDE | 多语言 | Cursor Inc. | ❌ | 智能代码生成、团队协作 |
|
||||
| Tabnine | 2018 | IDE插件+本地模型 | 10+ | Tabnine | 部分开源 | 轻量级场景、私有化部署 |
|
||||
| CodeWhisperer | 2022 | IDE插件 | Python/Java/JS等 | Amazon | ❌ | AWS生态开发、企业安全合规 |
|
||||
| 通义灵码 | 2024 | IDE插件 | 主流语言 | 阿里云 | ❌ | 中文开发者、阿里云生态 |
|
||||
| 百度Comate | 2024 | IDE插件 | 主流语言 | 百度 | ❌ | 国内企业客户、文心大模型生态 |
|
||||
| Trae | 2025.01 | 独立IDE | 多语言 | 字节跳动 | ❌ | 中文开发者、快速原型开发 |
|
||||
| Cline | 2023 | IDE插件 | Python/Java/JS等 | 开源社区 | ✅ | 成本敏感、实验型项目 |
|
||||
| Codeium | 2021 | IDE插件 | 多语言 | Exafunction | ❌ | 多模型选择、自然语言搜索 |
|
||||
| Lovable | 2025 | 在线平台 | Web全栈 | E2B | 开源 | 零代码基础、MVP快速验证 |
|
||||
| Fragments | 2025 | 在线平台 | Python/Next.js/Vue | E2B | 开源 | 教育实验、多模型对比测试 |
|
||||
| LlamaCoder | 2025 | 在线平台 | Next.js/Tailwind等 | Together AI | 开源 | 开源模型爱好者、轻量应用开发 |
|
||||
| Devin | 2024 | 自主代理 | Python/Shell等 | Cognition+微软 | ❌ | 自动修复、复杂任务自动化 |
|
||||
|
||||
###### 补充对比项
|
||||
|
||||
| 工具名称 | 开源性 | 本地部署 | 中文支持 | 成本最低 | 免费策略 | 创新性 |
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
| **GitHub Copilot** | ❌ | ❌ | ⭐⭐ | ⭐⭐ | 30天免费试用 | ⭐⭐ |
|
||||
| **Cursor** | ❌ | ❌ | ⭐⭐⭐ | ⭐ | 免费基础版 | ⭐⭐⭐⭐ |
|
||||
| **Cline** | ✅ | ✅ | ⭐⭐ | ⭐⭐⭐ | 完全免费 | ⭐⭐⭐ |
|
||||
| **Tabnine** | 部分开源 | ✅ | ⭐⭐ | ⭐⭐ | 社区版免费 | ⭐⭐ |
|
||||
| **CodeWhisperer** | ❌ | ❌ | ⭐⭐ | ⭐⭐ | AWS免费层 | ⭐⭐⭐ |
|
||||
| **通义灵码** | ❌ | ❌ | ⭐⭐⭐⭐ | ⭐⭐⭐ | 个人免费 | ⭐⭐⭐ |
|
||||
| **Codeium** | ❌ | ✅ | ⭐⭐ | ⭐⭐⭐⭐ | 完全免费 | ⭐⭐⭐⭐ |
|
||||
| **Devin** | ❌ | ✅ | ⭐⭐ | ⭐ | 企业定制 | ⭐⭐⭐⭐⭐ |
|
||||
|
||||
---
|
||||
|
||||
##### 二、核心维度对比分析
|
||||
|
||||
###### 1\. 编程支持程度
|
||||
|
||||
- **顶级能力** :
|
||||
- **GitHub Copilot** :代码建议质量最高,尤其擅长复杂算法和Python/JS(依赖Codex模型)\[1\]\[3\]。
|
||||
- **Codeium** :多模型灵活切换(如DeepSeek成本最低),支持WebNotebook类工具\[2\]\[3\]。
|
||||
- **Trae** :Claude 3.7 Sonnet驱动,WebDev得分超GPT-4o\[3\]。
|
||||
- **局限性** :
|
||||
- **Tabnine** :私有模型中文支持弱,复杂任务表现较差\[2\]。
|
||||
- **Fragments** :生成复杂应用稳定性不足\[2\]。
|
||||
|
||||
###### 2\. 易用性
|
||||
|
||||
- **IDE集成** :
|
||||
- **Cursor/Visual Studio Code原生集成** :多行编辑、跨文件上下文补全、用户动作预测\[3\]。
|
||||
- **Trae独立IDE** :内置终端执行、Builder模式一键生成项目\[1\]。
|
||||
- **中文支持** :
|
||||
- **Trae/通义灵码** :原生中文界面+中文代码注释生成\[1\]\[3\]。
|
||||
- **Cursor** :需插件调用中文版本\[3\]。
|
||||
- **交互设计** :
|
||||
- **LlamaCoder** :Sandpack沙盒实时预览,生成速度约10秒/应用\[2\]。
|
||||
- **Devin** :自主学习能力,可独立解决GitHub问题\[3\]。
|
||||
|
||||
###### 3\. 国内外支持
|
||||
|
||||
- **国际主导工具** :
|
||||
- **GitHub Copilot** :全球开发者社区,VS Code用户覆盖率高\[1\]。
|
||||
- **CodeWhisperer** :AWS生态深度绑定,企业级安全合规\[2\]。
|
||||
- **国内崛起工具** :
|
||||
- **通义灵码** :阿里云生态适配,企业版按需定价\[1\]。
|
||||
- **Trae** :字节跳动全球化布局,国内用户访问零延迟\[1\]。
|
||||
|
||||
###### 4\. 费用对比
|
||||
|
||||
| 工具名称 | 免费版 | 付费模式 | 免费策略说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| GitHub Copilot | 30天试用 | 10美元/月或100美元/年 | 学生/开源贡献者免费 |
|
||||
| Cursor | 免费基础功能 | Pro版20美元/月 | 无开源免费版本 |
|
||||
| Tabnine | 有 | 专业版12美元/月 | 有限免费配额 |
|
||||
| CodeWhisperer | 个人非商业用 | 企业定制 | AWS服务绑定 |
|
||||
| Trae | ✅ | 完全免费 | 限时优惠,可能后续收费\[1\]\[3\] |
|
||||
| Cline | ✅ | API消耗按token计费(如Google Gemini免费) | 开源免费,依赖外部API |
|
||||
| Lovable | 免费在线版 | Pro版付费 | 开源版本功能受限 |
|
||||
| Fragments | ✅ | 本地部署需支付API成本 | 多模型免费使用 |
|
||||
|
||||
###### 5\. 工具特点与创新
|
||||
|
||||
- **创新功能** :
|
||||
- **Trae Builder模式** :输入“React生成Todo List”即可生成项目架构+Webview预览\[1\]。
|
||||
- **Devin自主代理** :通过长期学习优化纠错,独立解决编程问题\[3\]。
|
||||
- **Cline多模型支持** :兼容OpenAI、Anthropic、DeepSeek等,成本最低化\[2\]。
|
||||
- **技术痛点解决** :
|
||||
- **Cursor Cascade技术** :实时跟踪代码变更,多文件编辑精准匹配上下文\[2\]。
|
||||
- **Fragments安全沙盒** :基于E2B SDK防止代码执行风险\[2\]。
|
||||
|
||||
---
|
||||
|
||||
##### 三、综合对比表
|
||||
|
||||
| 工具名称 | 编程支持 | 易用性 | 国内支持 | 国际支持 | 费用 | 创新性 |
|
||||
| --- | --- | --- | --- | --- | --- | --- |
|
||||
| GitHub Copilot | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ |
|
||||
| Cursor | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐ |
|
||||
| Trae | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
|
||||
| Codeium | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ |
|
||||
| Cline | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
|
||||
| 通义灵码 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ |
|
||||
| Devin | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ |
|
||||
|
||||
---
|
||||
|
||||
##### 四、行业趋势与选择建议
|
||||
|
||||
1. **趋势** :
|
||||
- **免费化竞争** :Trae(完全免费)、Fragments(多模型免费)冲击Cursor付费模式\[1\]\[2\]。
|
||||
- **多模态集成** :Builder模式(Trae)、沙盒预览(LlamaCoder)降低开发门槛\[1\]\[2\]。
|
||||
- **大模型竞赛** :Claude 3.7 Sonnet(WebDev第一)、Llama 3.1 405B刷新性能上限\[3\]。
|
||||
2. **选择建议** :
|
||||
- **国际用户** :优先GitHub Copilot(功能全面)或Cursor(IDE深度集成)。
|
||||
- **国内用户** :Trae(中文友好+免费)、通义灵码(阿里云生态)。
|
||||
- **企业客户** :CodeWhisperer(AWS安全)、Devin(自动化运维)。
|
||||
- **学生/爱好者** :Fragments(多模型实验)、Cline(开源低成本)。
|
||||
- **快速原型开发** :Lovable(零代码)、Trae Builder模式。
|
||||
|
||||
##### 五、关键维度横向对比
|
||||
|
||||
| 维度 | 国际工具优势 | 国内工具优势 |
|
||||
| --- | --- | --- |
|
||||
| **模型性能** | GitHub Copilot代码生成准确率超85% | 通义灵码在Java微服务场景优化显著 |
|
||||
| **中文支持** | Claude/Cursor中文理解较弱 | 文心快码中文注释生成质量领先 |
|
||||
| **合规性** | Windsurf企业版支持私有化部署 | 腾讯云/阿里云工具符合等保2.0要求 |
|
||||
| **成本效益** | Codeium免费版功能完整 | CodeGeeX/MarsCode完全开源免费 |
|
||||
|
||||
---
|
||||
@@ -0,0 +1,45 @@
|
||||
|
||||
|
||||
# 群晖系统
|
||||
|
||||
群晖安装container manager后会自动创建一个名为docker的文件夹,并赋予其ContainerManager、administrators的读写权限和Everyone的只读权限,但这样的权限很多时候无法满足使用需求,比如如果挂载了qbittorrent的config文件夹,启动docker容器时会报Could not create required directory 这样的错误导致甚至容器都无法创建成功,这个时候有两个解决问题的简单方法
|
||||
|
||||
一.为容器添加环境变量PUID=1026,PGID=101(对支持 PUID/PGID 环境变量的镜像)
|
||||
|
||||
[]
|
||||
|
||||
这两个id是你运行群晖时默认创建用户的uid和管理员组gid (至少7.2版本时这样的,如果设置之后还是有问题的话进命令行查一下用户id填进去就行),添加后这两个环境变量后你的容器就默认运行在此用户下,并且创建和下载的文件所有者也是此用户,权限问题就此解决
|
||||
|
||||
二.群晖文件权限问题的通用解:添加everone的可读写权限(右键文件夹-点击属性-点击权限-点击新增)
|
||||
|
||||
[]
|
||||
|
||||
|
||||
包治百病,只是牺牲了一点点理论上的安全性
|
||||
|
||||
# 飞牛系统
|
||||
|
||||
飞牛os虽然不会在你安装docker应用时替你创建一个带权限设置的docker文件夹,但因为飞牛里容器会默认以root用户运行(应该是),所以你只需要随便创建一个文件夹并挂载运行即可,绝大多数时候完全不需要进行任何额外的文件夹权限设置,qbittorrent的创建和使用中不会出现任何的权限问题。
|
||||
|
||||
一切都很美好,我们已经搞定了一切….么?
|
||||
|
||||
之所以只是说绝大多数时候,是因为偶尔有些镜像配置里使用了非root用户的情况,比如,我在用docker-compose创建archivebox/archivebox时就遇到了权限错误,虽然容器的运行和执行下载任务都没有问题,但如我在飞牛网页端对下载的文件进行替换的话,会导致容器读不到被替换后的文件而出现错误
|
||||
|
||||
就像这样:原文件的所有者是911
|
||||
|
||||
[]
|
||||
|
||||
|
||||
而被替换后的文件所有者变成当前登录网页的飞牛用户:ceshi(这是我的测试用户)
|
||||
|
||||
[
|
||||
|
||||
|
||||
替换后在网页端打开这个文件会报Server Error (500),该怎么解决呢?倒也简单,和群晖的第一种方法原理相同,在环境变量里添加PUID=1000,PGID=1000就一般可以搞定(飞牛里无法设置文件权限为everone可读写,所以纯网页只有这一种方式,还是没用的话就只能进ssh里设置…那就是另一个故事了)
|
||||
|
||||
[]
|
||||
|
||||
|
||||
喵,就是这样~
|
||||
|
||||
本文纯粹经验分享~
|
||||
@@ -0,0 +1,155 @@
|
||||
# **问题描述**
|
||||
|
||||
在默认情况下,Docker 需要 `sudo` 运行:
|
||||
|
||||
如果运行时出现 `permission denied` 或者只能用 `sudo docker ps`,说明当前用户没有足够的权限使用 Docker。
|
||||
|
||||
```text
|
||||
docker run -it -v xxxx:v1.0.0 bash
|
||||
```
|
||||
|
||||
```text
|
||||
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/images/json: dial unix /var/run/docker.sock: connect: permission denied
|
||||
-bash: Got: command not found
|
||||
```
|
||||
|
||||
通常,解决这个问题的方法是 **将当前用户添加到 `docker` 组**,然后重新登录或者重启系统。但在某些情况下,**我们无法重启服务器**,本文将介绍 **无需重启即可修复 `docker` 需要 `sudo` 的问题**。
|
||||
|
||||
* * *
|
||||
|
||||
# **问题分析**
|
||||
|
||||
Docker 需要 `sudo` 运行的常见原因包括:
|
||||
|
||||
1\. **当前用户未加入 `docker` 组**(默认情况下只有 `root` 和 `docker` 组的用户可以访问 `dockerd`)。
|
||||
|
||||
2\. **`docker.sock` 的权限错误**(`/var/run/docker.sock` 可能只有 `root` 用户可以访问)。
|
||||
|
||||
3\. **`[dockerd](https://zhida.zhihu.com/search?content_id=253361940&content_type=Article&match_order=2&q=dockerd&zhida_source=entity)` 进程未正确连接到用户**(需要手动重启 `dockerd` 进程)。
|
||||
|
||||
4\. **`DOCKER_HOST` 变量被错误设置**(可能指向了错误的 Docker daemon)。
|
||||
|
||||
5\. **`docker` CLI 连接的 context 错误**(导致 `docker` CLI 无法正确访问 `dockerd`)
|
||||
|
||||
* * *
|
||||
|
||||
# **✅ 解决方案(无需重启)**
|
||||
|
||||
### **1️⃣ 确保当前用户属于 `docker` 组**
|
||||
|
||||
运行以下命令,检查用户是否属于 `docker` 组:
|
||||
|
||||
如果 `docker` 不在输出中,手动添加当前用户到 `docker` 组:
|
||||
|
||||
```bash
|
||||
sudo usermod -aG docker $USER
|
||||
```
|
||||
|
||||
然后,**手动刷新用户组**(避免重新登录):
|
||||
|
||||
再次运行:
|
||||
|
||||
如果 `docker` 现在出现在列表中,尝试:
|
||||
|
||||
* * *
|
||||
|
||||
### **2️⃣ 修正 `/var/run/docker.sock` 权限**
|
||||
|
||||
即使用户组正确,Docker 可能仍然无法访问 `docker.sock`。检查[套接字](https://zhida.zhihu.com/search?content_id=253361940&content_type=Article&match_order=1&q=%E5%A5%97%E6%8E%A5%E5%AD%97&zhida_source=entity)权限:
|
||||
|
||||
```bash
|
||||
ls -l /var/run/docker.sock
|
||||
```
|
||||
|
||||
如果输出如下:
|
||||
|
||||
```text
|
||||
srw-rw---- 1 root root 0 Feb 6 10:00 /var/run/docker.sock
|
||||
```
|
||||
|
||||
说明 `docker.sock` 仍然属于 `root`,普通用户无法访问。修正权限:
|
||||
|
||||
```bash
|
||||
sudo chown root:docker /var/run/docker.sock
|
||||
sudo chmod 666 /var/run/docker.sock
|
||||
```
|
||||
|
||||
然后再次测试:
|
||||
|
||||
* * *
|
||||
|
||||
### **3️⃣ 手动重启 `dockerd` 进程(不重启系统)**
|
||||
|
||||
如果 `docker ps` 仍然需要 `sudo`,尝试手动重启 `dockerd`(无需重启系统):
|
||||
|
||||
```bash
|
||||
sudo systemctl restart docker
|
||||
```
|
||||
|
||||
如果 `systemctl` 不可用,尝试:
|
||||
|
||||
```bash
|
||||
sudo service docker restart
|
||||
```
|
||||
|
||||
然后再次运行:
|
||||
|
||||
* * *
|
||||
|
||||
### **4️⃣ 确保 `DOCKER_HOST` 变量未错误设置**
|
||||
|
||||
检查 `DOCKER_HOST` 变量是否被错误设置:
|
||||
|
||||
如果输出不是空的,清除它:
|
||||
|
||||
然后再次测试:
|
||||
|
||||
* * *
|
||||
|
||||
### **5️⃣ 确保 `docker` CLI 连接到正确的 daemon**
|
||||
|
||||
有时候 `docker` CLI 可能找不到 `dockerd`,尝试:
|
||||
|
||||
如果 `CURRENT` 不是 `default`,运行:
|
||||
|
||||
```bash
|
||||
docker context use default
|
||||
```
|
||||
|
||||
然后再次测试:
|
||||
|
||||
* * *
|
||||
|
||||
# **终极检查**
|
||||
|
||||
如果所有方法都尝试后仍然不行,执行以下命令并检查输出:
|
||||
|
||||
```bash
|
||||
groups
|
||||
ls -l /var/run/docker.sock
|
||||
docker version
|
||||
systemctl status docker
|
||||
```
|
||||
|
||||
这些信息可以帮助进一步分析问题。
|
||||
|
||||
* * *
|
||||
|
||||
# **结论**
|
||||
|
||||
✅ **不重启系统,解决 `docker` 需要 `sudo` 的问题**:
|
||||
|
||||
1️⃣ **刷新用户组权限**:`newgrp docker`
|
||||
|
||||
2️⃣ **修正 `/var/run/docker.sock` 权限**: `bash sudo chown root:docker /var/run/docker.sock sudo chmod 666 /var/run/docker.sock`
|
||||
|
||||
3️⃣ **重启 `dockerd` 进程(无需重启系统)**: `bash sudo systemctl restart docker`
|
||||
|
||||
4️⃣ **检查 `DOCKER_HOST` 变量是否错误**:`unset DOCKER_HOST`
|
||||
|
||||
5️⃣ **确保 `docker` CLI 连接到正确的 daemon**:`docker context use default`
|
||||
|
||||
按照这些步骤,你应该可以**在不重启服务器的情况下,解决 Docker 需要 sudo 才能运行的问题!**
|
||||
|
||||
|
||||
(2026.07)
|
||||