首页 > 解决方案 > 在“terraform apply”上 ping docker 服务器时出错

问题描述

我正在做 terraform 教程并达到执行的步骤terraform apply

执行该命令后,我收到此错误:

WARNING: cgroup v2 is not fully supported yet, proceeding with partial confinement

Error: Error pinging Docker server: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/_ping": dial unix /var/run/docker.sock: connect: permission denied

  on main.tf line 9, in provider "docker":
   9: provider "docker" {

这是我的配置main.tf文件中的内容:

terraform {
  required_providers {
    docker = {
      source = "kreuzwerker/docker"
    }
  }
}

provider "docker" {
  
}

resource "docker_image" "nginx" {
  name         = "nginx:latest"
  keep_locally = false
}

resource "docker_container" "nginx" {
  image = docker_image.nginx.latest
  name  = "tutorial"
  ports {
    internal = 80
    external = 8000
  }
}

我尝试添加host = "unix:///var/run/docker.sock"提供程序功能,但仍然出现该错误。我的电脑中也配置了 docker 和 NGINX。

有谁知道是什么原因造成的?

标签: dockernginxterraform

解决方案


当您使用您的用户 ID 运行docker run hello-world时,您将看到与您遇到的相同的错误。发生这种情况是因为您的用户无权执行 docker 的命令。请执行以下步骤。

  1. cat /etc/group --> 如果您正确安装了 docker,应该有一个可用的 docker 组。
  2. 将您的用户 ID 添加到 docker 组sudo usermod -aG docker $User_Name
  3. 从会话中注销并再次登录
  4. docker run hello-world --> 现在应该可以正常运行了。

现在尝试再次应用 Terraform,一切都会好起来的。


推荐阅读