木偶未显示Docker正在运行的服务器

时间:2018-11-14 11:14:14

标签: docker puppet

我正在尝试操纵木偶来运行docker容器。我正在使用puppetlabs docker模块。尽管在木偶日志中一切都很好并且显示正在运行,但是一切都运行良好,但是run命令却无法运行。

==> default: Running Puppet with default.pp...
==> default: Notice: Compiled catalog for pustakalaya.vm.vm.local in environment production in 0.52 seconds
==> default: Notice: /Stage[main]/Pustakalaya::Installdocker/Exec[install docker]/returns: executed successfully
==> default: Notice: /Stage[main]/Docker::Repos/Apt::Source[docker]/Apt::Setting[list-docker]/File[/etc/apt/sources.list.d/docker.list]/content: content changed '{md5}c4955fdae0865aac860821ca9257f48b' to '{md5}395ee27d70d138f3f6bdf37acbbb5c4f'
==> default: Notice: /Stage[main]/Apt::Update/Exec[apt_update]: Triggered 'refresh' from 1 event
==> default: Notice: /Stage[main]/Pustakalaya::Installdocker/Service[docker]: Triggered 'refresh' from 1 event
==> default: Notice: /Stage[main]/Pustakalaya::Run/Docker::Run[nginx]/Service[docker-nginx]/ensure: ensure changed 'stopped' to 'running'

我的木偶课是

docker::run { 'nginx':
    image   => 'nginx:latest',
          detach  => true,
          ports => ['80:80'],
          command => "/bin/bash"
   }

编辑解决方案

根据github.com/puppetlabs/puppetlabs-docker/issues/313在使用systemd的操作系统上,您不需要detatch => true参数集。如果将其删除,则您提供的示例将正常运行

1 个答案:

答案 0 :(得分:0)

容器在您运行的命令中一直存在。

在您的情况下,它很可能会成功执行非交互式调用以成功执行bash并以0退出。

要保持容器运行,您需要将--interactive参数传递给docker。看着puppet docker docs,听起来您可以将extra_parameters => ['--interactive'],添加到您的docker :: run。