2017-03-08 42 views
0

我目前正在尝试完成一个Vagrantfile,作为运行码头提供商(https://www.vagrantup.com/docs/docker/)的其他Vagrantfiles用作码头主机。注销/从内部登录Vagrantfile

我正在使用centos/atomic-host作为基准盒。问题是,当我运行vagrant up时,得到:

由Vagrant执行的Docker命令没有成功完成! 下面显示了命令的输出以及命令的输出 。

命令: “泊坞窗”, “PS”, “-a”, “-q” “--no-TRUNC”

标准错误:无法连接到泊坞守护进程。码头守护程序是否在该主机上运行?

这是由于流浪的用户不是码头组的一部分。我解决这个问题,加入这个我Vagrantfile:

# Add user vagrant to docker group 
$docker_group = <<-DOCKER_GROUP 
    groupadd docker 
    usermod -a -G docker vagrant 
    systemctl restart docker 
DOCKER_GROUP 
config.vm.provision "docker_group", type: "shell", privileged: true, inline: $docker_group 

我仍然得到我第一次跑了漂泊不定以上异常,但它从第二次开始工作。我怀疑的原因是,在将流浪用户添加到码头组后,我需要注销/登录才能使更改生效。

为了记录,我尝试在我的$docker_group脚本末尾添加newgrp docker,但它不能解决问题。我怀疑码头服务提供商开始一个单独的会议。

有人找到了解决方案吗?

+0

当docker守护进程没有运行时,通常会收到错误。您是否检查了docker是否正在运行? – 2017-03-08 10:01:22

+0

正如我所说的,我怀疑问题是,在将泊车用户添加到码头组后,我们需要注销/登录才能使更改生效。 – soltzu

回答

0

我不知道Vagrantfile,但我从你的问题中了解到,你需要某种方式来刷新用户的组,而无需重新登录。

如果是这样的话,以下几点可以帮助你:

  1. 为什么不直接su到用户再次:你可能只需登录到该用户再次,和所有的用户群将被更新。
  2. 或者您可以尝试Legooolas提到的this方法。

我不认为你提到的问题是与Vagrantfile,它只是它的方式。要更新用户的配置,您需要与用户重新登录。不过,如果你想找到一种方法,上面两个可能会帮助你。