Docker的配置文件 daemon.json 详解

  • Post author:
  • Post category:其他


配置文件的默认路径:/etc/docker/daemon.json

常用参数选项:

{

“registry-mirrors”: [“http://harbor.test.com”],   #镜像加速地址

“insecure-registries”: [“harbor.test.com”,”registry.cn-shenzhen.aliyuncs.com”] #  这个私库的服务地址

}

systemctl daemon-reload # 加载配置文件

systemctl restart docker # 重启docker生效

其他参数参考:

{

“api-cors-header”: “”,

“authorization-plugins”: [ ],

“bip”: “”,

“bridge”: “”,

“cgroup-parent”: “”,

“cluster-store”: “”,

“cluster-store-opts”: { },

“cluster-advertise”: “”,

“debug”: true,            # 启用debug的模式,启用后,可以看到很多的启动信息,默认false

“default-gateway”: “”,

“default-gateway-v6”: “”,

“default-runtime”: “runc”,

“default-ulimits”: { },

“disable-legacy-registry”: false,

“dns”: [“192.168.1.1”],  # 设定容器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”: “”,

“fixed-cidr”: “”,

“fixed-cidr-v6”: “”,

“graph”: “/var/lib/docker”,      # 已废弃,使用data-root代替,这个主要看docker的版本

“data-root”: “/var/lib/docker”,  # Docker运行时使用的根路径,默认/var/lib/docker

“group”: “”,                    # Unix套接字的属组,仅指/var/run/docker.sock

“hosts”: [ ],                    # 设置容器hosts

“icc”: false,

“insecure-registries”: [ ],      # 配置docker的私库地址

“ip”: “0.0.0.0”,

“iptables”: false,

“ipv6”: false,

“ip-forward”: false,  # 默认true, 启用 net.ipv4.ip_forward ,进入容器后使用 sysctl -a | grepnet.ipv4.ip_forward 查看

“ip-masq”: false,

“labels”: [“nodeName=node-121”],  # docker主机的标签,很实用的功能,例如定义:–label nodeName=host-121

“live-restore”: true,

“log-driver”: “”,

“log-level”: “”,

“log-opts”: { },

“max-concurrent-downloads”: 3,

“max-concurrent-uploads”: 5,

“mtu”: 0,

“oom-score-adjust”: -500,

“pidfile”: “”,    # Docker守护进程的PID文件

“raw-logs”: false,

“registry-mirrors”: [“xxxx”],  # 镜像加速的地址,增加后在 docker info中可查看

“runtimes”: {

“runc”: {

“path”: “runc”

},

“custom”: {

“path”: “/usr/local/bin/my-runc-replacement”,

“runtimeArgs”: [

“–debug”

]

}

},

“selinux-enabled”: false,  # 默认 false,启用selinux支持

“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,

“userns-remap”: “”

}

一般情况,配置文件 daemon.json 中配置的项目参数,在启动参数中同样适用,有些可能不一样(具体可以查看官方文档),但需要注意的一点,配置文件中如果已经有某个配置项,则无法在启动参数中增加,可以会出现冲突的错误

如果在 daemon.json 文件中进行配置,需要 docker 版本高于 1.12.6 (在这个版本上不生效,1.13.1 以上是生效的)

官方的配置地址:

https://docs.docker.com/engine/reference/commandline/dockerd/#options



版权声明:本文为LG_15011399296原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。