Docker 使用笔记 - 中国大陆实践指南

Docker 基础概念 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 或 Windows 机器上。 国内环境配置 镜像加速 配置国内镜像源加速 Docker Hub 访问: { "registry-mirrors": [ "https://mirror.ccs.tencentyun.com", "https://registry.docker-cn.com", "https://docker.mirrors.ustc.edu.cn" ] } 文件位置: Linux: /etc/docker/daemon.json Windows: %programdata%\docker\config\daemon.json 常用国内镜像仓库 阿里云容器镜像服务 腾讯云镜像仓库 华为云容器镜像服务 核心概念 镜像(Image) Docker 镜像是一个只读的模板 包含了运行应用程序所需的所有文件和配置 可以通过 Dockerfile 构建 容器(Container) 镜像的运行实例 可以被启动、停止、删除 每个容器都是相互隔离的 Dockerfile 用于构建镜像的脚本文件 包含了构建镜像所需的所有命令 示例: FROM ubuntu:20.04 RUN apt-get update && apt-get install -y nginx EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] 常用命令 # 构建镜像 docker build -t myapp:1.0 . # 运行容器 docker run -d -p 80:80 myapp:1.0 # 查看运行中的容器 docker ps # 停止容器 docker stop <container_id> Docker Compose Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过 docker-compose.yml 文件,可以配置应用程序的服务、网络和卷。 ...

March 11, 2025 · 2 min

OneNote API集成踩坑记录

背景 在Snip2Note项目中,我们需要将处理后的笔记内容同步到OneNote,以便在多设备间访问。这需要通过Microsoft Graph API进行OAuth认证,并调用OneNote API创建笔记页面。本文记录了在集成过程中遇到的一些问题及解决方案。 环境准备 1. Azure应用注册 首先需要在Azure门户中注册应用程序,获取必要的凭证: 应用名称:Snip2note_1 支持的账户类型:个人Microsoft账户 重定向URI:http://localhost:8088 所需API权限:Notes.ReadWrite.All 2. 环境变量配置 创建.env.onenote文件,包含以下配置: ONENOTE_CLIENT_ID= ONENOTE_CLIENT_SECRET= ONENOTE_TENANT_ID= # 代理设置 HTTP_PROXY=http://127.0.0.1:7890 HTTPS_PROXY=http://127.0.0.1:7890 问题1:客户端ID错误 现象 运行测试脚本时,出现以下错误: AADSTS700016: Application with identifier '9c5b91f7-53bf-4359-9f85-5cfdff6b2e5a # 填入 Application (client) ID' was not found in the directory 'Default Directory'. 原因分析 错误信息中的客户端ID与Azure门户中注册的不一致,且包含了注释文本。经排查发现,项目根目录存在一个默认的.env文件,其中包含了示例ID: ONENOTE_CLIENT_ID=9c5b91f7-53bf-4359-9f85-5cfdff6b2e5a # 填入 Application (client) ID Python的dotenv库会先加载根目录的.env文件,然后才加载.env.onenote文件,导致正确的ID被覆盖。 解决方案 两种解决方法: 修改代码加载环境变量的方式: # 加载环境变量 - 只加载指定的.env.onenote文件,忽略默认.env文件 dotenv_path = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), '.env.onenote') load_dotenv(dotenv_path=dotenv_path, override=True) 更新默认的.env文件:将正确的配置从.env.onenote复制到.env文件中。 问题2:认证端点错误 现象 修复客户端ID后,出现新的错误: AADSTS90023: Application %s(Snip2note_1) is configured for use by Microsoft Account users only. Please use the %2fconsumer endpoint to serve this request. 原因分析 我们的应用被配置为仅支持Microsoft个人账户(Personal Microsoft account users),但代码中使用了组织账户的认证端点。 ...

March 10, 2025 · 1 min

Ubuntu OneDrive 同步指南:Linux下的云存储最佳实践

Ubuntu OneDrive 同步服务配置指南 作者:Segegs 日期:2025-02-22 环境:Ubuntu 24.10 OneDrive 简介 OneDrive 是微软提供的云存储服务,它提供: 文件存储和同步 跨设备文件同步 自动相册备份 文件版本控制 文件共享和协作 文件和文件夹共享 实时协作编辑 权限管理 安全特性 文件加密 多重身份验证 数据备份和恢复 集成功能 与 Microsoft 365 集成 支持 Windows、macOS、iOS 和 Android 提供 Web 界面访问 Linux 上的 OneDrive 客户端 微软官方并未提供 Linux 版本的 OneDrive 客户端,但社区开发了一个功能强大的开源客户端,它提供: 基本功能 文件双向同步 增量同步 文件监控 高级特性 选择性同步 排除规则 文件名大小写敏感性处理 系统集成 Systemd 服务支持 日志和状态监控 命令行工具 前言 在 Ubuntu 系统上配置 OneDrive 同步服务可能会遇到一些挑战。这篇文章将详细记录整个配置过程,包括遇到的问题和解决方案。 1. 安装 OneDrive 客户端 首先,我们需要安装 OneDrive 客户端。Ubuntu 24.10 的软件仓库已经包含了最新版本的 OneDrive 客户端: ...

February 22, 2025 · 3 min

欢迎来到我的博客

欢迎来到我的个人博客!这里将分享技术研究、项目开发和创新思考。 关于本站 本站使用Hugo构建,专注于以下内容: 技术研究与创新 帕金森病研究进展 AI应用开发经验 项目开发心得 持续更新 我会定期更新博客内容,分享最新的研究发现和技术进展。欢迎关注!

January 1, 2024 · 1 min