![在 Linux 上使用带有 squid 代理的 docker。——ubuntu 20.04](https://linux22.com/image/785781/%E5%9C%A8%20Linux%20%E4%B8%8A%E4%BD%BF%E7%94%A8%E5%B8%A6%E6%9C%89%20squid%20%E4%BB%A3%E7%90%86%E7%9A%84%20docker%E3%80%82%E2%80%94%E2%80%94ubuntu%2020.04.png)
我已经从 apt 安装了 docker 20.10.21。该机器未直接连接到互联网,因此我们依赖于 squid 代理。
我已经设置了一个 daemon.json 文件:
rful011@secphires01:~$ cat /etc/docker/daemon.json
{
"http-proxy": "http://squid.auckland.ac.nz:3128",
"https-proxy": "http://squid.auckland.ac.nz:3128",
"no-proxy": "*.auckland.ac.nz"
}
如所述这里。
启动dockerd给出:
rful011@secphires01:~$ sudo /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
unable to configure the Docker daemon with file /etc/docker/daemon.json: the following directives don't match any configuration option: no-proxy, http-proxy, https-proxy
显然我忽略了一些东西。
答案1
Ubuntu 20.04 搭载 Docker版本 20.10。
根据文档n 您至少需要 23.0 才能以这种方式配置代理:
守护进程可以通过三种方式配置:
- 使用环境变量(HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY)。
- 使用守护进程配置文件中的“http-proxy”、“https-proxy”和“no-proxy”字段(Docker Engine 23.0 或更新版本)。
- 使用 --http-proxy、--https-proxy 和 --no-proxy 命令行选项。(Docker Engine 23.0 或更新版本)。
因此您要么需要安装较新版本的 Docker,要么需要使用环境变量。
您可以使用它sudo systemctl edit docker
来创建一个 systemd 插件并在其中配置环境变量。