docker - 如何在服务启动时使用 puppet 配置 docker 守护进程
问题描述
我正在使用 puppet 来配置一个 docker 实例。下面是在实例上启动 docker 的代码片段。
service { 'docker':
ensure => running,
name => 'docker',
provider => 'systemd',
enable => true,
require => [ File['/root/.docker/config.json'], File['/etc/sysconfig/docker'], Package['docker-ce'] ]
}
根据 docker 文档,您可以在启动 docker 守护进程时传入参数来设置不同的配置。
例如dockerd --icc=false
将启动 docker 并为icc
.
我知道我可以将配置更改添加到 daemon.json 文件并让 docker 选择它,但我想弄清楚如何在 puppet 代码中进行配置更改。
那么如何在启动 docker 时指定配置更改,如 --icc=false ,就像我在上面的 puppet 代码中一样?
解决方案
那么如何在启动 docker 时指定配置更改,如 --icc=false ,就像我在上面的 puppet 代码中一样?
你不能。您提供的资源声明确保 Docker 守护程序正在运行,但它不直接执行dockerd
,因此没有提供将参数传递给守护程序二进制文件的机制。但是,它确实通过专门管理守护进程systemd
,因此您可以通过让 Puppet 管理相应的 systemd 单元文件来执行您所描述的操作,但这与管理daemon.json
(通过 Puppet)并没有什么不同。
顺便说一句,通过不同的 Puppet 资源管理服务的配置(文件)和该服务的运行状态是绝对正常的。通常还管理提供服务的包,将所有这些包装到一个模块中。事实上,已经有几个预先构建的 Docker 模块可用,包括一个由 Puppet, Inc. 自己构建和维护的模块。
推荐阅读
- ios - ld:未找到架构 arm64 的符号
- python - 使用 matplotlib 在散点图中的 blob 下绘制热图
- delphi - 创建 TFrame 并将其分配给父控件时如何避免显示“闪烁”
- python - Python PermissionError 访问 Azure Datalake 文件夹
- git - 为什么我的分支认为来自 master 的更改是“旧的”?
- dart - 扑动 AdBlock WebView?
- android - 如何在firebase中读取纬度和经度以在谷歌地图android中显示
- javascript - 为什么这个正则表达式的输出会有所不同?
- java - 从 queryForList() 方法返回数据 - 类型不兼容错误
- amazon-web-services - AWS S3 批处理操作 - 非常难受