Docker应用之daemon.json(一)

07-14 1332阅读

目录

  • 问题复现
  • 原因分析
  • 解决步骤
  • 1.创建daemon.json
  • 2.国内镜像地址
  • 3.保存daemon.json
  • 4.重启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

             结果如下图所示:

    Docker应用之daemon.json(一)

    问题小结

            最后成功创建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

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]