
mfinelli/azcopy!Lint Status !Image Size
docker-azcopy 是基于 Alpine Linux 构建的轻量级容器镜像,封装了微软 Azure 官方的 Azcopy 工具。Azcopy 是一款用于 Azure 存储服务间高效数据传输的命令行工具,支持多种存储类型间的批量数据迁移与同步。
提供无需本地安装依赖的 Azcopy 运行环境,适用于各类 Docker 兼容场景下的 Azure 存储数据传输操作,包括数据迁移、备份、同步及自动化流程集成等。
copy(复制)、sync(同步)、remove(删除)、jobs(任务管理)等核心操作命令容器镜像可直接作为 Azcopy 命令行工具使用,语法与原生 Azcopy 一致。基本命令格式:
shelldocker run --rm -it mfinelli/azcopy [azcopy-command] [options]
查看版本:
shelldocker run --rm -it mfinelli/azcopy --version
查看帮助(列出所有命令):
shelldocker run --rm -it mfinelli/azcopy help
获取具体命令帮助(如 copy 命令):
shelldocker run --rm -it mfinelli/azcopy help copy
若需访问本地文件或持久化配置,需通过 -v 参数挂载本地目录至容器:
shell# 示例:传输本地文件至 Azure Blob(挂载当前目录至容器内 /data) docker run --rm -it -v $(pwd):/data mfinelli/azcopy copy \ "/data/local-file.txt" \ "https://<storage-account>.blob.core.windows.net/<container>/remote-file.txt?<sas-token>"
关键挂载路径:
-v ./data:/data)~/.azcopy 以持久化任务状态、日志及认证缓存(如 -v ~/.azcopy:/root/.azcopy)Azcopy 支持通过环境变量传递认证信息及运行参数,容器中可通过 -e 设置:
| 环境变量 | 说明 |
|---|---|
AZCOPY_SPA_CLIENT_ID | 服务主体(SPN)认证的客户端 ID |
AZCOPY_SPA_TENANT_ID | 服务主体认证的租户 ID(如 xxx.onmicrosoft.com) |
AZCOPY_SPA_CLIENT_SECRET | 服务主体认证的客户端密钥 |
AZCOPY_LOG_LOCATION | 日志文件存储路径(容器内路径,建议挂载至本地持久化) |
AZCOPY_JOB_PLAN_LOCATION | 任务计划文件路径(断点续传依赖,建议挂载至本地保留任务状态) |
shelldocker run --rm -it \ -e AZCOPY_SPA_CLIENT_ID="your-spn-client-id" \ -e AZCOPY_SPA_TENANT_ID="your-tenant-id" \ -e AZCOPY_SPA_CLIENT_SECRET="your-spn-secret" \ mfinelli/azcopy copy \ "[***]" \ "[***]" \ --recursive # 递归传输目录内容
shell# 查看 Azcopy 帮助文档 docker run --rm -it mfinelli/azcopy help # 递归同步本地目录至 Azure Blob(挂载本地目录+SAS认证) docker run --rm -it -v $(pwd)/docs:/docs mfinelli/azcopy sync \ "/docs" \ "[***]" \ --recursive --delete-destination true
适用于需固定挂载目录及环境变量的场景(如定期任务):
yamlversion: '3' services: azcopy: image: mfinelli/azcopy volumes: - ./local-data:/data # 本地数据目录(需传输的文件) - ./azcopy-config:/root/.azcopy # 持久化 Azcopy 配置(任务状态、日志) environment: - AZCOPY_LOG_LOCATION=/root/.azcopy/logs # 日志存储路径 - AZCOPY_JOB_PLAN_LOCATION=/root/.azcopy/jobs # 任务计划路径 command: ["sync", "/data", "[***]<sas-token>", "--recursive"]
启动命令:docker-compose run --rm azcopy
--rm:容器退出后自动删除,避免残留容器文件-it:启用交互模式并分配终端,支持命令行输入(如确认操作)-v <local>:<container>:挂载本地目录至容器,实现文件共享-e <KEY>=<VALUE>:设置环境变量,传递认证信息或配置参数--recursive(递归传输)、--delete-destination(删除目标端多余文件)等,完整列表见 Azcopy 官方文档root)访问,建议设置目录权限为 755mfinelli/azcopy:10.19),避免自动升级导致兼容性问题(标签列表见 Docker Hub)manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务