如何使用sed命令修改/etc/docker/daemon.json配置文件
Docker daemon.json 配置修改的 sed 命令解决方案
初始文件内容
/etc/docker/daemon.json 的初始内容如下:
{ "runtimes": { "nvidia": { "path": "nvidia-container-runtime", "runtimeArgs": [] } }, "log-driver": "json-file" }
问题一:给包含log-driver的行末尾添加逗号
直接用以下 sed 命令即可实现:
sed -i '/"log-driver"/s/$/,/' /etc/docker/daemon.json
命令说明
-i:直接修改原文件(如果不想改动原文件,去掉-i,将结果输出到终端或重定向到新文件)/\"log-driver\"/:精准匹配包含"log-driver"的行s/$/,/:在匹配行的末尾($代表行尾)添加逗号
修改后的文件内容:
{ "runtimes": { "nvidia": { "path": "nvidia-container-runtime", "runtimeArgs": [] } }, "log-driver": "json-file", }
问题二:在log-driver所在行下方添加指定配置
使用以下 sed 命令完成追加:
sed -i '/"log-driver"/a \ "log-opts": { \ "max-size": "50m", \ "max-file": "5" \ }' /etc/docker/daemon.json
命令说明
/\"log-driver\"/:定位到包含"log-driver"的目标行a \:表示在匹配行的下方追加内容,后续每行用\换行来保留格式,注意缩进要和原文件一致,确保JSON格式合法
修改后的文件内容:
{ "runtimes": { "nvidia": { "path": "nvidia-container-runtime", "runtimeArgs": [] } }, "log-driver": "json-file", "log-opts": { "max-size": "50m", "max-file": "5" } }
内容的提问来源于stack exchange,提问作者Andrew8460958
相关产品推荐
相关产品推荐

