从内部VagrantFile注销/登录



我目前正在尝试完成一个运行Docker提供者的其他VagrantFiles用作Docker主机的VagrantFile(https://wwwww.vagrantup.com/docs/docs/docker/docker/)。

我将centos/atomic-host用作基础框。问题是当我运行vagrant up时,我会得到:

Vagrant执行的Docker命令并未成功完成! 显示命令与命令的输出一起运行 下面。

命令:" docker" ps" -a" - q" - no-trunc"

stderr:无法连接到Docker守护程序。Docker守护程序是否在此主机上运行?

这是由于流浪者的用户不是Docker组的一部分。我通过将其添加到我的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组后,我需要注销/登录以进行更改才能生效。

对于记录,我尝试在我的$docker_group脚本末尾添加newgrp docker,但不能解决问题。我怀疑Docker提供商开启了一个单独的会话。

有人找到了解决方案?

我不知道vagrantfile,但是我从您的问题中了解的是,您需要某种方法来刷新用户的组而不必重新恢复。

如果是这样,以下几点可能会帮助您:

  1. 为什么不再次向用户提供SU:您可以再次登录用户,所有用户的组将被更新。
  2. 否则您可以尝试这种方法LEGOOOLAS已提及。

我几乎不认为您提到的问题是在VagrantFile中,这就是事实。要更新用户的配置,您需要与用户重新使用。不过,如果您想找到一种方法,以上两个可能会帮助您。

相关内容

  • 没有找到相关文章

最新更新