服务器没有sudo权限,如何配置docker镜像加速或者代理?

佬友们,最近我遇到个问题,解决了两天了还是没有合适的解决办法。就是我在学校的服务器上能够使用docker,但是没有sudo权限。我目前需要使用docker,但是服务器连接不上 docker.io,我本地配置了clash代理,但是docker不走这个代理。我网上搜了很多方法,大多都需要修改系统文件或者sudo权限,我的权限仅限于 ~/** 里,请问该怎么做来让docker pull的时候能够使用代理或者镜像加速?

另外,我尝试过使用docker pull 带镜像源地址的镜像,例如使用 docker pull dockerpull.cn/library/ubuntu:latest,也会经常报下面的这个错:

error parsing HTTP 400 response body: invalid character '<' looking for beginning of value: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Error><Code>InvalidRequest</Code><Message>Missing x-amz-content-sha256</Message></Error>"

另外,好像docker pull和docker build使用的是不同的代理方式,这个我也不太懂,目前网上搜到的方法,要么没用,要么需要sudo权限,而且是修改全局的。

请问佬友有没有合适的办法解决,折腾了好半天了。因为这个服务器很多人在用,所以修改尽量只影响我自己的工作区。如果实在需要sudo权限我可以去找管理员 :tieba_087:

提前谢谢各位大佬!

命令行的临时环境变量试了没有?

可以试一下 docker.1panel.live 镜像

如果想用代理可以在 /etc/docker/daemon.json 这个文件中添加

{
  "proxies": {
    "http-proxy": "http://127.0.0.1:xxxx",
    "https-proxy": "http://127.0.0.1:xxxx"
  }
}

/etc/systemd/system/docker.service.d/http-proxy.conf 中添加

[Service]
Environment="HTTP_PROXY=http://127.0.0.1:xxxx"
Environment="HTTPS_PROXY=http://127.0.0.1:xxxx"

docker pull 只能用别人加速网站,或者拉取到GitHub的ghcr.io再拉回来。

docker build 有命令行参数可以配置代理。

这个更改会影响所有人吧,没法这样改 :tieba_087:

我用加速的镜像会报上面那个错,我也不知道怎么解决 :tieba_087:

那可以在 ~/.config/systemd/user/docker.service.d/http-proxy.conf 这个文件中添加

[Service]
Environment="HTTP_PROXY=http://127.0.0.1:xxxx"
Environment="HTTPS_PROXY=https://127.0.0.1:xxxx"

参考文档
Daemon proxy configuration | Docker Docs

1 个赞

就是用原来的方法多试几个加速就行,昨天试了下三楼的那个是正常的

谢谢!我回去试试 :bili_116:

docker不走环境变量,export http_proxy对他没用 :tieba_087:

你下载镜像到你的电脑,然后导入到服务器上

2 个赞

我试了下还是不行,这个是用rootless启动的docker服务的设置方法,服务器上的docker是正常启动的,这个设置对它来说没用 :tieba_087:

如果是root身份运行的Docker守护进程那就不太好办了,选一个能用镜像pull吧

不过非root用户也不一定有权限使用Docker命令,可以用 docker images 看一下

docker命令单独给我们开放了的 :tieba_087:

本地下镜像,然后上传,或者走镜像加速了,代理没有权限估计不行

目前国内可用Docker镜像源汇总(截至2025年2月) - CoderJia
挑个能用的镜像用吧

3 个赞

我刚刚找了个docker.1ms.run挺好用的,但是pull下来的image也必须带这个registry前缀才能run,我有强迫症感觉不舒服 :tieba_087:

这个链接不错哎,我一般用南京大学的应急

可以改镜像名字的,dokcer有命令

:tieba_087:好,我去看看