在“terraform apply”上 ping docker 服务器时出错

3 nginx docker terraform

我正在做 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" {
Run Code Online (Sandbox Code Playgroud)

这是我的配置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
  }
}
Run Code Online (Sandbox Code Playgroud)

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

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

小智 9

确保 Docker CLI 工具安装在 /usr/local/bin 下并设置 /var/run/docker.sock ,某些第三方客户端(例如 terrafor)可以使用它与 Docker 通信

在此输入图像描述

参考: https: //docs.docker.com/desktop/mac/permission-requirements/


小智 5

您可以使用以下命令找到您的 Docker Socket:

docker 上下文 ls

然后使用套接字地址相应地更新您的提供程序块

provider "docker" {
  host = "unix:///home/rehman/.docker/desktop/docker.sock"
}
Run Code Online (Sandbox Code Playgroud)