docker 镜像加速器配置,daemon.json文件详解
标签搜索

docker 镜像加速器配置,daemon.json文件详解

mrui
2024-01-26 / 0 评论 / 90 阅读 / 正在检测是否收录...

背景:docker默认的镜像服务器是dockerhub,但是在国内从dockerhub拉取镜像时比较不稳定(无法访问,加载速度慢,连接中断等),因此需要配置国内的镜像加速器。

vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://yaia9b6l.mirror.aliyuncs.com"]
}
systemctl daemon-reload  #重新加载配置信息
systemctl restart docker #重启docker使配置信息生效。 

查看镜像加速配置是否生效

docker info | grep Mirrors -A1
Registry Mirrors:
  https://yaia9b6l.mirror.aliyuncs.com/

ltpjp1tc.png

来自官网的示例

{
  "allow-nondistributable-artifacts": [],
  "api-cors-header": "",
  "authorization-plugins": [],
  "bip": "",
  "bridge": "", 
#标志设置docker0为默认桥接网络。它是在您安装Docker时自动创建的。
#如果未使用默认值,则必须手动创建和配置网桥或仅将其设置为“none”:--bridge=none
  "builder": {
    "gc": {
      "enabled": true,
      "defaultKeepStorage": "10GB",
      "policy": [
        { "keepStorage": "10GB", "filter": ["unused-for=2200h"] },
        { "keepStorage": "50GB", "filter": ["unused-for=3300h"] },
        { "keepStorage": "100GB", "all": true }
      ]
    }
  },
  "cgroup-parent": "",
  "containerd": "/run/containerd/containerd.sock",
  "containerd-namespace": "docker",
  "containerd-plugin-namespace": "docker-plugins",
  "data-root": "",
  "debug": true, 
  #启用debug的模式,启用后,可以看到很多的启动信息。默认false
  "default-address-pools": [
    {
      "base": "172.30.0.0/16",
      "size": 24
    },
    {
      "base": "172.31.0.0/16",
      "size": 24
    }
  ],
  "default-cgroupns-mode": "private",
  "default-gateway": "",
  "default-gateway-v6": "",
  "default-network-opts": {},
  "default-runtime": "runc",
  #如果在创建容器时未指定,则更新要使用的运行时。
  #它默认为“default”,这是官方docker软件包附带的运行时。
  "default-shm-size": "64M",
  "default-ulimits": {
    "nofile": {
      "Hard": 64000,
      "Name": "nofile",
      "Soft": 64000
    }
  },
  "dns": [], # 设定容器DNS的地址,在容器的 /etc/resolv.conf文件中可查看。
  "dns-opts": [],  # 容器 /etc/resolv.conf 文件,其他设置
  "dns-search": [], 
# 设定容器的搜索域,当设定搜索域为.example.com 时,在搜索一个名为host的主机时,
#DNS不仅搜索host,还会搜索host.example.com。
#注意:如果不设置, Docker 会默认用主机上的 /etc/resolv.conf 来配置容器。
  "exec-opts": [],
  "exec-root": "",
  "experimental": false,
  "features": {},
  "fixed-cidr": "",
  "fixed-cidr-v6": "",
  "group": "", #Unix套接字的属组,仅指/var/run/docker.sock
  "hosts": [],  #指定Docker守护程序将侦听客户端连接的位置。
  #如果未指定,则默认为/var/run/docker.sock。
  "proxies": {
    "http-proxy": "http://proxy.example.com:80",
    "https-proxy": "https://proxy.example.com:443",
    "no-proxy": "*.test.example.com,.example.org",
  },
  "icc": false,
  "init": false,
  "init-path": "/usr/libexec/docker-init",
  "insecure-registries": [], #配置docker的私库地址
  "ip": "0.0.0.0",
  "ip-forward": false, 
  #默认true, 启用 net.ipv4.ip_forward ,
  #进入容器后使用 sysctl -a | grepnet.ipv4.ip_forward 查看
  "ip-masq": false,
  "iptables": false,
  "ip6tables": false,
  "ipv6": false,
  "labels": [], 
  # docker主机的标签,很实用的功能,例如定义:–label nodeName=host-121
  "live-restore": true,
  "log-driver": "json-file",
  "log-level": "",
  "log-opts": {
    "cache-disabled": "false",
    "cache-max-file": "5",
    "cache-max-size": "20m",
    "cache-compress": "true",
    "env": "os,customer",
    "labels": "somelabel",
    "max-file": "5",
    "max-size": "10m"
  },
  "max-concurrent-downloads": 3,  #它更新每次拉动的最大并发下载量。
  "max-concurrent-uploads": 5, #它更新每次推送的最大并发上传次数。
  "max-download-attempts": 5,
  "mtu": 0,
  "no-new-privileges": false,
  "node-generic-resources": [
    "NVIDIA-GPU=UUID1",
    "NVIDIA-GPU=UUID2"
  ],
  "oom-score-adjust": 0,
  "pidfile": "",
  "raw-logs": false,
  "registry-mirrors": [], #镜像加速的地址,增加后在 docker info中可查看。
  "runtimes": {
    "cc-runtime": {
      "path": "/usr/bin/cc-runtime"
    },
    "custom": {
      "path": "/usr/local/bin/my-runc-replacement",
      "runtimeArgs": [
        "--debug"
      ]
    }
  },
  "seccomp-profile": "",
  "selinux-enabled": false, #默认 false,启用selinux支持
  "shutdown-timeout": 15,
  "storage-driver": "",
  "storage-opts": [],
  "swarm-default-advertise-addr": "",
  "tls": true, #默认 false, 启动TLS认证开关
  "tlscacert": "",
  #默认 ~/.docker/ca.pem,通过CA认证过的的certificate文件路径
  "tlscert": "", #默认 ~/.docker/cert.pem ,TLS的certificate文件路径
  "tlskey": "",  #默认~/.docker/key.pem,TLS的key文件路径
  "tlsverify": true,#默认false,使用TLS并做后台进程与客户端通讯的验证
  "userland-proxy": false,
  "userland-proxy-path": "/usr/libexec/docker-proxy",
  "userns-remap": ""
}
0

评论

博主关闭了当前页面的评论