无法将docker.sock绑定到docker服务

无法将docker.sock绑定到docker服务,docker,terraform,bind,docker-swarm,Docker,Terraform,Bind,Docker Swarm,我正在尝试设置一个docker服务(通过terraform),它将jenkins作为容器运行。我想将主机VM的docker docket绑定到docker服务。我尝试了两种选择 Docker服务作为命令 使用terraform生成docker服务 当服务成功实例化时,容器无法识别docker套接字。我可以看到容器中的/var/run/docker.sock文件,但是docker命令不起作用 代码块供您参考 码头服务指挥部 docker service create --name aws --m

我正在尝试设置一个docker服务(通过terraform),它将jenkins作为容器运行。我想将主机VM的docker docket绑定到docker服务。我尝试了两种选择

  • Docker服务作为命令
  • 使用terraform生成docker服务
  • 当服务成功实例化时,容器无法识别docker套接字。我可以看到容器中的
    /var/run/docker.sock
    文件,但是docker命令不起作用

    代码块供您参考

    码头服务指挥部

    docker service  create --name aws --mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock jenkins/jenkins:lts
    
    地形主TF文件

    resource "docker_service" "jenkins_service" {
      name = var.project_name
      task_spec {
        container_spec {
          image = docker_image.jenkins_image.name
          mounts {
            source = var.jenkins_volume
            target = "/var/jenkins_home"
            type   = "bind"
          }
          mounts {
            source = "/var/run/docker.sock"
            target = "/var/run/docker.sock"
            type   = "bind"
          }
        }
        networks = ["${docker_network.jenkins_network.name}"]
      }
    
      endpoint_spec {
        ports {
          target_port    = "8080"
          published_port = var.web_interface_port
          publish_mode   = "ingress"
          name           = "WEB_INTERFACE"
        }
        ports {
          target_port    = "50000"
          published_port = var.api_interface_port
          publish_mode   = "ingress"
          name           = "API_INTERFACE"
        }
      }
    }
    
    错误消息

    bash-4.2$docker exec-u 0-it 9bc2a468174a bash
    root@9bc2a468174a:/#码头工人
    bash:docker:未找到命令
    root@9bc2a468174a:/#ls-ltr/var/run/docker.sock
    srwxrwxrwx。1 root 1670 Sep 24 11:02/var/run/docker.sock

    Docker版本

    -bash-4.2$docker版本
    客户:
    版本:18.09.8
    API版本:1.39
    Go版本:go1.10.8
    Git提交:0dd43dd87f
    建成日期:2019年7月17日星期三17:40:31
    OS/Arch:linux/amd64
    实验性:错误

    服务器:Docker引擎-社区
    引擎:
    版本:18.09.8 API版本:1.39(最低版本1.12)
    Go版本:go1.10.8
    Git提交:0dd43dd
    建成日期:2019年7月17日星期三17:10:42
    OS/Arch:linux/amd64
    实验性:错误

    任何意见都将不胜感激

    问候
    Senthil Nathan M

    bash:docker:未找到命令


    容器中没有安装docker客户端。从容器内的主机装载
    /var/run/docker.sock
    ,只会使容器的docker客户端与主机的docker守护进程通信。您仍然需要在容器中至少安装docker客户端。

    如果您看到
    docker.sock
    特殊文件,则绑定装载工作正常。正如@ShashankV在他们的回答中所说的,正如链接问题中所描述的,容器中没有
    docker
    二进制文件,这是实现此功能所必需的另一部分。