Docker
Docker 是容器运行平台。本页介绍在 Ubuntu 上从 apt 存储库安装 Docker Engine,以及为 Docker 配置代理。
安装#
先添加一个 Docker 的 apt 存储库,再安装 Docker 包。下面的命令在 root shell 下执行。
添加官方 apt 存储库#
添加 Docker 官方 GPG 密钥和存储库:
添加阿里云公网镜像存储库#
使用阿里云公网镜像时,改用以下命令:
添加阿里云 ECS VPC 镜像存储库#
在阿里云 ECS 上,可以改用 VPC 内网镜像:
安装 Docker 包#
添加存储库后,安装 Docker Engine 及插件:
配置#
docker pull、docker push 等请求由 Docker Engine(dockerd)发起,需要给 dockerd 配置代理。以下方式任选其一,适用于使用 systemd 的 Linux 上的 Docker Engine。Docker Desktop 不使用这里的 daemon.json 代理设置。
NO_PROXY 建议包含内网域名、私有镜像仓库地址、localhost 和 127.0.0.1。
在 daemon.json 中配置拉取代理#
Docker Engine 23.0+ 支持在 daemon.json 中配置代理。daemon.json 中的代理配置优先级高于环境变量配置。
-
在
/etc/docker/daemon.json里写入: -
重启 Docker:
用 systemd 环境变量配置拉取代理#
给 docker.service 添加代理环境变量。代理地址含 #?!()[]{} 等特殊字符时,按 Docker 官方文档转义。
-
在 root shell 下写入配置并重启 Docker:
-
确认环境变量已加载:
为 rootless Docker 配置拉取代理#
rootless Docker 的 systemd 配置放在当前用户目录下。以当前用户执行:
使用#
dockerd 的代理只作用于守护进程自己的请求。容器内访问外网、docker build 下载依赖,需要在命令里另行传入代理。
为容器设置代理#
用 -e 传入代理环境变量:
为构建设置代理#
用 --build-arg 传入代理,不要把代理写进 Dockerfile 的 ENV:
代理地址可能含认证信息,不要提交到仓库。
参考#
- 阿里云容器镜像服务控制台:获取并配置阿里云镜像加速器。