Docker应用之daemon.json(一)

刘一说 2024-06-29 09:37:11 阅读 64

目录

问题复现原因分析解决步骤1.创建daemon.json2.国内镜像地址3.保存daemon.json4.重启docker服务5.查看镜像源问题小结官网docs提供的一个示例配置参数背景说明


问题复现

        今天在用docker部署springboot项目时,出现JDK8依赖包下载失败,

原因分析

       第一时间想到可能是镜像源地址导致的。查看docker镜像源配置文件:

cat /etc/docker/daemon.json

         运行后提示没有daemon.json文件。尝试创建和配置docker镜像源地址后,顺利解决。

解决步骤

1.创建daemon.json

        创建daemon.json,并添加国内镜像地址:

vi /etc/docker/daemon.json

2.国内镜像地址

        添加如下内容:

{

"registry-mirrors":[

"https://d8b3zdiw.mirror.aliyuncs.com"

]

}

3.保存daemon.json

        保存退出之后,系统reload配置文件:

sudo systemctl daemon-reload

4.重启docker服务

        重启docker服务:

#CentOS:

systemctl restart docker.service

#Ubuntu:

sudo service docker restart

5.查看镜像源

        查看修改后的镜像源地址 :

docker info|grep Mirrors -A 1

         结果如下图所示:

问题小结

        最后成功创建springboot镜像,并创建容器成功运行起来。

官网docs提供的一个示例配置

{

"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":""

}

参数背景说明

背景

docker安装后默认没有daemon.json这个配置文件,需要进行手动创建。配置文件的默认路径:/etc/docker/daemon.json

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

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

参数 

daemon.json文件可配置的参数表,我们在配置的过程中,只需要设置我们需要的参数即可,不必全部写出来。详细参考官网。

官方的配置地址:https://docs.docker.com/engine/reference/commandline/dockerd/#/configuration-reloading。

官方的配置地址:https://docs.docker.com/engine/reference/commandline/dockerd/#options

官方的配置地址:https://docs.docker.com/engine/reference/commandline/dockerd/#/linux-configuration-file



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。