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

如何在代理环境下执行docker login命令登录AWS ECR镜像仓库

问题根因

Docker 执行docker login的网络请求由后台Docker daemon服务发起,你配置的Shell环境变量、~/.docker/config.json属于Docker客户端侧的配置,不会被daemon进程读取,因此代理不生效导致连接超时。


解决步骤

  1. 配置Docker daemon代理
    使用systemd管理Docker服务的Linux发行版,执行以下操作:
  • 创建代理配置目录(如果不存在)
sudo mkdir -p /etc/systemd/system/docker.service.d
  • 新建代理配置文件/etc/systemd/system/docker.service.d/http-proxy.conf,写入以下内容:
[Service]
Environment="HTTP_PROXY=http://192.168.1.1:8080"
Environment="HTTPS_PROXY=http://192.168.1.1:8080"
Environment="NO_PROXY=localhost,127.0.0.1,::1,169.254.169.254"

注:169.254.169.254是AWS实例元数据地址,加入NO_PROXY避免AWS CLI调用时走代理导致异常。如果有其他内网地址不需要走代理,也可以追加到这个参数里。

  1. 重载配置并重启Docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker
  1. 验证配置生效
    执行docker info命令,查看输出末尾的HTTP Proxy、HTTPS Proxy、No Proxy字段,确认和你配置的代理信息一致。

  2. 重新执行ECR登录命令即可正常完成登录。


额外说明

你之前在命令行前缀添加HTTPS_PROXY变量的操作,仅对当前Shell启动的进程生效,无法传递给后台运行的Docker daemon,因此不会生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 09:39:03