docker - “尾随垃圾,无视。” Docker 在 vagrant virtualbox 上的 centos 中使用 puppet 时出错
问题描述
当我尝试使用 puppet docker 模块在 Centos 7 上安装 docker 时,使用这个 puppet 模块 https://forge.puppet.com/puppetlabs/docker
# Install Docker
class { 'docker':
version => '18.06.1.ce-3.el7',
}
我正在使用 vagrant、virutalbox 和以下 centos 盒子
config.vm.box = "geerlingguy/centos7"
config.vm.box_version = "1.2.15"
第一次运行良好,但再次在配置箱上
$ vagrant provsion --color
收到此错误任何想法我该如何解决?
==> default: Info: /Stage[main]/Docker::Service/Exec[docker-systemd-reload-before-service]: Scheduling refresh of Service[docker]
==> default: Error: Systemd start for docker failed!
==> default: journalctl log for docker:
==> default: -- Logs begin at Mon 2019-10-14 15:41:55 NZDT, end at Mon 2019-10-14 15:43:14 NZDT. --
==> default: Oct 14 15:43:14 docker systemd[1]: [/etc/systemd/system/docker.service.d/service-overrides.conf:6] Trailing garbage, ignoring.
==> default: Oct 14 15:43:14 docker systemd[1]: [/etc/systemd/system/docker.service.d/service-overrides.conf:7] Missing '='.
==> default: Oct 14 15:43:14 docker systemd[1]: docker.service lacks both ExecStart= and ExecStop= setting. Refusing.
==> default: Oct 14 15:43:14 docker systemd[1]: [/etc/systemd/system/docker.service.d/service-overrides.conf:6] Trailing garbage, ignoring.
==> default: Oct 14 15:43:14 docker systemd[1]: [/etc/systemd/system/docker.service.d/service-overrides.conf:7] Missing '='.
==> default: Oct 14 15:43:14 docker systemd[1]: docker.service lacks both ExecStart= and ExecStop= setting. Refusing.
==> default: Oct 14 15:43:14 docker systemd[1]: [/etc/systemd/system/docker.service.d/service-overrides.conf:6] Trailing garbage, ignoring.
==> default: Oct 14 15:43:14 docker systemd[1]: [/etc/systemd/system/docker.service.d/service-overrides.conf:7] Missing '='.
==> default: Oct 14 15:43:14 docker systemd[1]: docker.service lacks both ExecStart= and ExecStop= setting. Refusing.
==> default:
==> default: Error: /Stage[main]/Docker::Service/Service[docker]/ensure: change from 'stopped' to 'running' failed: Systemd start for docker failed!
==> default: journalctl log for docker:
==> default: -- Logs begin at Mon 2019-10-14 15:41:55 NZDT, end at Mon 2019-10-14 15:43:14 NZDT. --
==> default: Oct 14 15:43:14 docker systemd[1]: [/etc/systemd/system/docker.service.d/service-overrides.conf:6] Trailing garbage, ignoring.
==> default: Oct 14 15:43:14 docker systemd[1]: [/etc/systemd/system/docker.service.d/service-overrides.conf:7] Missing '='.
==> default: Oct 14 15:43:14 docker systemd[1]: docker.service lacks both ExecStart= and ExecStop= setting. Refusing.
==> default: Oct 14 15:43:14 docker systemd[1]: [/etc/systemd/system/docker.service.d/service-overrides.conf:6] Trailing garbage, ignoring.
==> default: Oct 14 15:43:14 docker systemd[1]: [/etc/systemd/system/docker.service.d/service-overrides.conf:7] Missing '='.
==> default: Oct 14 15:43:14 docker systemd[1]: docker.service lacks both ExecStart= and ExecStop= setting. Refusing.
==> default: Oct 14 15:43:14 docker systemd[1]: [/etc/systemd/system/docker.service.d/service-overrides.conf:6] Trailing garbage, ignoring.
==> default: Oct 14 15:43:14 docker systemd[1]: [/etc/systemd/system/docker.service.d/service-overrides.conf:7] Missing '='.
==> default: Oct 14 15:43:14 docker systemd[1]: docker.service lacks both ExecStart= and ExecStop= setting. Refusing.
==> default:
==> default: Notice: /Stage[main]/Docker::Service/Service[docker]: Triggered 'refresh' from 1 event
有与类似问题相关的不同链接,但没有一个与此错误真正相关 https://github.com/docker/for-linux/issues/162
https://github.com/moby/moby/issues/34091
https://github.com/coreos/fleet/issues/992
更新
[vagrant@docker ~]$ sudo systemctl daemon-reload
[vagrant@docker ~]$ sudo systemctl start docker
Failed to start docker.service: Unit is not loaded properly: Invalid argument.
See system logs and 'systemctl status docker.service' for details.
[vagrant@docker ~]$ sudo systemctl status docker.service
● docker.service - Docker Application Container Engine
Loaded: error (Reason: Invalid argument)
Drop-In: /etc/systemd/system/docker.service.d
└─service-overrides.conf
Active: inactive (dead)
Docs: https://docs.docker.com
Oct 16 11:54:25 docker systemd[1]: docker.service lacks both ExecStart= and ExecStop= setting. Refusing.
Oct 16 11:57:05 docker systemd[1]: [/etc/systemd/system/docker.service.d/service-overrides.conf:6] Trailing garbage, ignoring.
Oct 16 11:57:05 docker systemd[1]: [/etc/systemd/system/docker.service.d/service-overrides.conf:7] Missing '='.
Oct 16 11:57:05 docker systemd[1]: docker.service lacks both ExecStart= and ExecStop= setting. Refusing.
Oct 16 11:57:21 docker systemd[1]: [/etc/systemd/system/docker.service.d/service-overrides.conf:6] Trailing garbage, ignoring.
Oct 16 11:57:21 docker systemd[1]: [/etc/systemd/system/docker.service.d/service-overrides.conf:7] Missing '='.
Oct 16 11:57:21 docker systemd[1]: docker.service lacks both ExecStart= and ExecStop= setting. Refusing.
Oct 16 11:57:32 docker systemd[1]: [/etc/systemd/system/docker.service.d/service-overrides.conf:6] Trailing garbage, ignoring.
Oct 16 11:57:32 docker systemd[1]: [/etc/systemd/system/docker.service.d/service-overrides.conf:7] Missing '='.
Oct 16 11:57:32 docker systemd[1]: docker.service lacks both ExecStart= and ExecStop= setting. Refusing.
[vagrant@docker ~]$
解决方案
根据您的错误消息
==> default: Oct 14 15:43:14 docker systemd[1]: docker.service lacks both ExecStart= and ExecStop= setting. Refusing.
您的 docker.service 文件似乎缺少几行对于运行和控制服务至关重要的行。
您可以在此处查看 docker 的工作示例:
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target docker.socket firewalld.service
Wants=network-online.target
Requires=docker.socket
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd://
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
https://github.com/moby/moby/blob/master/contrib/init/systemd/docker.service
您可以通过以下方式确定您的服务文件在给定系统上的位置
sudo systemctl status docker
docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
正如您在上面的示例中看到的,服务文件位于/usr/lib/systemd/system/docker.service
.
推荐阅读
- android - 使用 Android BLE 时出现错误“E/bt_btif:... ignore HID...”
- java - 使用 JSONPath 的 MockMVC 无法读取
- javascript - 动态内容的反应状态
- r - 我在 ggplot2 上的热图没有显示部分数据,但 data.frame 似乎很好
- python - 如何在正则表达式中搜索这种模式
- babeljs - Babel 7 更新了无法同时使用装饰器和装饰器遗留插件的玩笑测试
- regex - Spark Scala Regex -> 基于正则表达式创建多列
- php - 使用 PHP 和 SQL 更新用户状态
- java - 如何在 weblogic 12.1.3.0 中使用@EJB、@Inject 和@Local?
- postgresql - 使用 windows7 安装 postgresql 时出错