前提
系统环境:ubutnu
已经有梯子代理
系统环境ubutnu
- 安装docker
- 在docker-hub注册账号,需要登录后才能下载镜像
- sudo docker login,会提示输入docker-hub的用户名和密码,成功后会提示success。否则会提示
Error response from daemon: Get “https://registry-1.docker.io/v2/”: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers。
4. 一般的原因似乎代理的问题,需要给docker设置代理,步骤如下:
配置 Docker 使用代理 - 编辑 Docker 配置文件: 在 /etc/systemd/system/docker.service.d/ 目录下创建一个配置文件,或者直接修改现有的配置文件。
首先,创建一个目录(如果它不存在)并编辑代理配置文件:
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
2. 配置代理: 在文件中添加以下内容,设置 HTTP 和 HTTPS 代理:
[Service]
Environment=“HTTP_PROXY=http://127.0.0.1:7890/”
Environment=“HTTPS_PROXY=http://127.0.0.1:7890/”
Environment=“NO_PROXY=localhost,127.0.0.1”
○ HTTP_PROXY=http://127.0.0.1:7890/:这是你配置的 HTTP 代理地址和端口。
○ HTTPS_PROXY=http://127.0.0.1:7890/:设置 HTTPS 代理。
○ NO_PROXY=localhost,127.0.0.1:排除本地网络地址(如 localhost 和 127.0.0.1)不通过代理。
3. 重新加载和重启 Docker 服务: 修改完配置后,你需要重新加载 systemd 配置,并重启 Docker 服务来使更改生效:
sudo systemctl daemon-reload
sudo systemctl restart docker
4. 验证代理设置: 你可以使用以下命令查看 Docker 的环境变量,确保代理设置已生效:
sudo systemctl show --property=Environment docker
输出中应该包含类似下面的行:
Environment=HTTP_PROXY=http://127.0.0.1:7890/
Environment=HTTPS_PROXY=http://127.0.0.1:7890/
Environment=NO_PROXY=localhost,127.0.0.1
- 设置代理后,就可以登录了,执行sudo docker login,会提示先输入sudo的授权密码,即电脑密码,再根据提示输入username和password。即可登录成功,会有如下提示
docker login 登录成功提示
chen@chen:chatnio$ sudo docker login
[sudo] chen 的密码:
Login with your Docker ID to push and pull images from Docker Hub. If you don’t have a Docker ID, head over to https://hub.docker.com to create one.
Username: 12344**
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded