Administrator
发布于 2025-09-28 / 3 阅读
0
0

docker配置文件详解

代理配置

在使用 Docker 时,如果你的网络环境需要通过代理服务器访问外网(比如公司内网或校园网),你需要对 Docker 进行代理配置,否则 Docker 在拉取镜像、运行容器等操作时可能会因无法访问外网而失败。以下是 Docker 配置代理的详细步骤:


一、Container 的Proxy(适用于 docker 命令行工具)

注意,Docker客户端配置是对创建的容器生效,也就是把代理环境变量配置注入到容器内部。对于物理主机上的docker服务要实现镜像下载加速,需要配置 Docker服务器Proxy

在容器运行阶段,如果需要代理上网,则需要配置 ~/.docker/config.json。以下配置,只在Docker 17.07及以上版本生效。

[root@docker ~]# cat .docker/config.json 
{  
	"auths": {
		"192.168.100.28:8088": {
			"auth": "YWRtaW46SGFyYm9yMTIzNDU="
		},
		"registry.cn-shenzhen.aliyuncs.com": {
			"auth": "ZGFzc3o6ZGFzQDEyMzQ1Ng=="
		}
	},
	"proxies": {
		"default": {
			"httpProxy": "http://172.168.80.36:7897",
			"httpsProxy": "http://172.168.80.36:7897",
			"noProxy": "localhost,127.0.0.1,::1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.mirayai.com,.dockerproxy.com,.aliyun.com,easzlab.io.local"
		}
	}
}

二、Docker服务器Proxy

对于主机上的dockerd服务,在下载镜像等工作使用代理,则需要配置服务的环境变量。

  • 创建 /etc/systemd/system/docker.service.d/http-proxy.conf 配置文件

[root@docker ~]# cat /etc/systemd/system/docker.service.d/http-proxy.conf 
[Service]
Environment="HTTP_PROXY=http://172.168.80.36:7897"
Environment="HTTPS_PROXY=http://172.168.80.36:7897"
Environment="NO_PROXY=localhost,127.0.0.1,::1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.mirayai.com,.dockerproxy.com,.aliyun.com,easzlab.io.local"

然后重新加载配置并重启服务:

systemctl daemon-reload
systemctl restart docker
  • 然后检查加载的配置:

systemctl show docker --property Environment

可以看到输出:

[root@docker ~]# systemctl show docker --property Environment
Environment=HTTP_PROXY=http://172.168.80.36:7897 HTTPS_PROXY=http://172.168.80.36:7897 NO_PROXY=*.chn-das.com,*.dasaiot.com,127.0.0.1,10.*,172.*,192.*,dockerproxy.*,*.aliyun.com

配置文件介绍

# cat /etc/docker/daemon.json 
{
	"data-root": "/opt/docker-data/docker",
	"log-opts": {
		"max-size": "10m",
		"max-file": "3"
	},
	"insecure-registries": ["192.168.100.28:8088","docker-registry.openfaas-fn","docker-registry.openfaas-fn:5000","easzlab.io.local:5000"],
	"registry-mirrors": ["http://192.168.100.28:8088"],
	"default-address-pools": [{"base": "10.233.0.1/18","size": 24}]
}
  1. data-root:

  • 作用:指定 Docker 存储容器数据和镜像的根目录。默认情况下,Docker 会将数据存储在 /var/lib/docker 目录下。通过设置 data-root,你可以将 Docker 数据存储在其他位置,例如 /opt/docker-data/docker

  1. log-opts:

  • 作用:配置 Docker 容器的日志选项。

  • max-size: 指定单个日志文件的最大大小,这里设置为 10m(10 兆字节)。

  • max-file: 指定保留的日志文件的最大数量,这里设置为 3。当日志文件超过最大大小时,Docker 会轮换日志文件并删除最旧的文件。

  1. insecure-registries:

  • 作用:指定不安全的 Docker 镜像仓库地址。默认情况下,Docker 只允许使用 HTTPS 的注册表。如果你有一个使用 HTTP 的本地注册表,可以将其添加到这个列表中。在这个示例中,包含了两个不安全的注册表地址:192.168.100.28:8088docker-registry.openfaas-fn(包括其端口 5000)。

  1. registry-mirrors:

  • 作用:配置 Docker 镜像的镜像加速器。Docker 默认从 Docker Hub 下载镜像,如果网络较慢,可以使用镜像加速器来提高下载速度。在这个示例中,指定了一个镜像加速器 http://192.168.100.28:8088

  1. default-address-pools:

  • 作用:配置 Docker 网络的默认地址池。这个配置项允许你定义 Docker 网络在创建时使用的 IP 地址范围。

  • base: "10.233.0.1/18"是这个地址池的起始地址。18 表示这个地址池的网络部分有 18 位,剩余的 14 位用于主机地址。10.233.0.0/18 的网络范围是从 10.233.0.010.233.63.255。这个范围总共有 16384 个 IP 地址(2^14),其中包括网络地址 10.233.0.0 和广播地址 10.233.63.255,所以可用的主机地址是从 10.233.0.110.233.63.254

  • size 设置为 24 表示在 10.233.0.0/18 的基础上,Docker 会从这个地址池中划分出多个子网,每个子网的大小为 24。从 10.233.0.0/2410.233.63.0/24

官方文档

Proxy configuration | Docker Docs


评论