Docker(十六)-Docker的daemon.json的作用

本文详细介绍Docker配置文件daemon.json的创建与使用,包括配置项解释、示例配置及如何配置私库和镜像加速,帮助读者掌握Docker高级配置技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

{

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

}

上述是官网docs提供的一个示例配置,我们可以参考,选择性的配置其中的部分内容。

示例 

1、如何配置 registry 私库相关的参数
涉及以下2个参数:

1

2

3

"insecure-registries": [],  #这个私库的服务地址

 

"registry-mirrors": [],    #私库加速器

2.配置示例:

1

2

3

4

5

6

7

8

9

10

11

# cat /etc/docker/daemon.json

 

{

"registry-mirrors": [

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

],

 

"insecure-registries": [

"https://ower.site.com"

],

}

配置与应用

1.默认没有文件,所以我们需要先创建,进入/etc/docker目录下,记得创建的文件所有者是root(vim或touch,记得chown修改所有者)
-rw-r--r-- 1 root root 71 Dec 19 17:25daemon.json
2.在文档中配置想要添加的参数:如,镜像加速器网站,私库网站

1

2

3

4

5

6

7

8

9

10

# cat /etc/docker/daemon.json

{

"registry-mirrors":[

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

],

 

"insecure-registries": [

"https://ower.site.com"

],

}

3.创建并修改完daemon.json文件后,需要让这个文件生效
a.修改完成后reload配置文件

sudo systemctl daemon-reload

b.重启docker服务

sudo systemctl restart docker.service

c.查看状态

sudo systemctl status docker -l

d.查看服务

sudo docker info

当我们需要对docker服务进行调整配置时,不用去修改主文件 docker.service的参数,通过daemon.json配置文件来管理,更为安全、合理。

 

« 上一篇: Docker(十五)-Docker的数据管理(volume/bind mount/tmpfs) 
» 下一篇: Docker(十七)-修改Docker容器启动配置参数

<think>好的,用户现在问的是如何用Docker命令输出daemon.json的内容。我需要仔细分析这个问题。首先,用户可能已经知道daemon.jsonDocker的配置文件,但可能不清楚Docker本身并没有直接命令来显示这个文件的内容。之前的对话中,用户询问过如何查看当前Docker配置,我提到过检查daemon.json的方法,比如用cat命令直接查看文件。现在用户可能希望找到一个Docker内置的命令来输出这个文件,但实际情况是没有这样的命令。 用户的问题可能存在误解,他们可能认为存在类似docker config show这样的命令,但实际上Docker CLI并没有直接读取daemon.json的功能。这时候需要明确告知用户这一点,并指导他们使用系统命令来查看文件内容,比如cat或者jq工具。同时,用户可能有权限问题,比如文件位置在/etc/docker/daemon.json,但用户可能没有权限访问,这时候需要提醒使用sudo或者检查路径是否正确。 另外,用户可能有更深层次的需求,比如他们可能想确认他们的配置是否生效,或者他们修改了daemon.json后是否成功应用了配置。这时候需要提供相关命令,比如重启Docker服务,或者检查Docker守护进程的参数来确认配置是否正确加载。同时,用户可能来自不同的操作系统环境,比如Windows、Mac或者Linux,需要指出不同系统下daemon.json的路径可能不同,尤其是Docker Desktop用户需要注意。 还要考虑用户可能遇到的常见问题,比如文件不存在的情况,这时候需要说明如何处理,是否需要创建该文件。同时,强调配置的优先级,命令行参数会覆盖daemon.json的设置,所以即使文件存在,也可能被覆盖,这时候需要检查ps命令的输出。总结下来,需要分步骤说明各种方法,并给出验证配置生效的方式,确保用户能够全面理解和解决问题。</think>--- ### 如何查看 Docker 的 `daemon.json` 内容? Docker **没有直接命令**输出 `daemon.json` 的内容,因为该文件属于系统配置文件而非 Docker 管理的对象。但可以通过以下方法间接查看其内容: --- #### 方法 1:直接读取文件内容 `daemon.json` 默认存储在 `/etc/docker/` 目录下。使用 `cat` 命令查看: ```bash cat /etc/docker/daemon.json ``` - **如果文件存在**:直接输出配置内容 - **如果文件不存在**:Docker 会使用默认配置(无输出) --- #### 方法 2:使用 `jq` 工具美化输出(可选) 如果文件内容较长,可通过 `jq` 格式化 JSON: ```bash cat /etc/docker/daemon.json | jq ``` ⚠️ 需要提前安装 `jq`: ```bash sudo apt-get install jq # Ubuntu/Debian sudo yum install jq # CentOS/RHEL ``` --- #### 方法 3:检查 Docker Desktop 的特殊路径(适用于 macOS/Windows) 如果使用 **Docker Desktop**,`daemon.json` 可能位于以下路径: - **macOS**: `~/Library/Group\ Containers/group.com.docker/settings.json` - **Windows**: `%USERPROFILE%\.docker\daemon.json` --- #### 常见问题排查 1. **权限不足**: ```bash sudo cat /etc/docker/daemon.json # 使用管理员权限查看 ``` 2. **配置未生效**: - 修改 `daemon.json` 后需重启 Docker 服务: ```bash sudo systemctl restart docker ``` 3. **验证配置优先级**: Docker 最终配置由 `daemon.json` 和命令行参数共同决定,可通过以下命令查看实际生效的配置参数: ```bash ps -ef | grep dockerd # 检查是否有覆盖 `daemon.json` 的命令行参数 ``` --- ### 总结 - **直接查看文件**:`cat /etc/docker/daemon.json` - **无该文件时**:Docker 使用默认配置 - **修改配置后**:必须重启 Docker 服务(`systemctl restart docker`)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值