You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Azure容器注册表拉取Docker镜像并在本地服务器用docker-compose运行

从ACR拉取镜像并在Debian服务器通过Docker Compose运行的解决方案

1. 配置ACR登录凭据并完成服务器登录

  • 在Azure DevOps发布流水线的变量组中添加以下变量(将ACR_PASSWORD设为秘密变量):
    • ACR_NAME:你的Azure容器注册表名称
    • ACR_USERNAME:ACR管理员账户名或有权限的服务主体App ID
    • ACR_PASSWORD:ACR管理员密码或服务主体密码
  • 在Debian服务器的命令行执行脚本中,先完成Docker登录:
docker login $(ACR_NAME).azurecr.io -u $(ACR_USERNAME) -p $(ACR_PASSWORD)

2. 获取代码仓库中的docker-compose.yml文件

由于你使用ACR作为制品源,无法直接获取代码仓库里的docker-compose.yml,可二选一:

方法A:将docker-compose.yml作为制品上传并下载

  • 在构建镜像的CI流水线中,添加步骤将docker-compose.yml打包(或直接上传)到Azure DevOps通用制品库
  • 在发布流水线中添加下载制品步骤,将该文件下载到Debian服务器的部署目录(如/opt/deploy)

方法B:从Git仓库直接拉取

  • 在Debian服务器配置Git访问凭据(如SSH密钥或个人访问令牌),确保无需交互即可拉取代码
  • 在脚本中执行拉取命令:
# 首次部署克隆仓库,后续部署替换为git pull
git clone <你的Git仓库地址> /opt/app-repo
cp /opt/app-repo/docker-compose.yml /opt/deploy/

3. 修正docker-compose.yml中的镜像地址

将文件内的镜像名替换为ACR完整地址,可通过脚本动态修改:

# 替换镜像名,将my-app:latest改为你的ACR镜像地址
sed -i "s|my-app:latest|$(ACR_NAME).azurecr.io/my-app:latest|g" /opt/deploy/docker-compose.yml

4. 拉取镜像并启动服务

在脚本中执行Docker Compose命令完成部署:

# 拉取最新镜像
docker-compose -f /opt/deploy/docker-compose.yml pull
# 后台启动服务
docker-compose -f /opt/deploy/docker-compose.yml up -d

前置环境检查(可选)

如果Debian服务器未安装Docker相关工具,可在脚本开头添加安装命令:

sudo apt-get update && sudo apt-get install -y docker.io docker-compose
# 将当前用户加入docker组,避免sudo操作
sudo usermod -aG docker $USER
newgrp docker

内容的提问来源于stack exchange,提问作者godzkaya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 11:20:36