无法将 docker.sock 绑定到 Docker 服务
Unable to bind docker.sock to Docker Service
我正在尝试设置 docker 服务(通过 terraform),它将 运行 jenkins 作为容器。我想将主机 VM 的 docker 摘要绑定到 docker 服务。我尝试了两种选择。
- Docker 服从命令
- 使用 terraform
生成 docker 服务
虽然服务成功实例化,但容器无法识别 docker 套接字。我可以在容器中看到 /var/run/docker.sock
文件,但 docker 命令不起作用。
代码块供您参考。
DOCKER 服务命令
docker service create --name aws --mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock jenkins/jenkins:lts
TERRAFORM 主 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:/# docker
bash: docker: command not found
root@9bc2a468174a:/# ls -ltr /var/run/docker.sock
srwxrwxrwx. 1 root 167 0 Sep 24 11:02 /var/run/docker.sock
Docker版本
-bash-4.2$ docker version
Client:
Version: 18.09.8
API version: 1.39
Go version: go1.10.8
Git commit: 0dd43dd87f
Built: Wed Jul 17 17:40:31 2019
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.8
API version: 1.39 (minimum version 1.12)
Go version: go1.10.8
Git commit: 0dd43dd
Built: Wed Jul 17 17:10:42 2019
OS/Arch: linux/amd64
Experimental: false
任何输入将不胜感激。
问候
Senthil Nathan M
bash: docker: command not found
.
您的容器中没有安装 docker 客户端。从容器内的主机挂载 /var/run/docker.sock
只会让容器的 docker 客户端与主机的 docker 守护进程对话。您仍然需要在您的容器中至少安装 docker 客户端。
我正在尝试设置 docker 服务(通过 terraform),它将 运行 jenkins 作为容器。我想将主机 VM 的 docker 摘要绑定到 docker 服务。我尝试了两种选择。
- Docker 服从命令
- 使用 terraform 生成 docker 服务
虽然服务成功实例化,但容器无法识别 docker 套接字。我可以在容器中看到 /var/run/docker.sock
文件,但 docker 命令不起作用。
代码块供您参考。
DOCKER 服务命令
docker service create --name aws --mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock jenkins/jenkins:lts
TERRAFORM 主 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:/# docker
bash: docker: command not found
root@9bc2a468174a:/# ls -ltr /var/run/docker.sock
srwxrwxrwx. 1 root 167 0 Sep 24 11:02 /var/run/docker.sock
Docker版本
-bash-4.2$ docker version
Client:
Version: 18.09.8
API version: 1.39
Go version: go1.10.8
Git commit: 0dd43dd87f
Built: Wed Jul 17 17:40:31 2019
OS/Arch: linux/amd64
Experimental: falseServer: Docker Engine - Community
Engine:
Version: 18.09.8 API version: 1.39 (minimum version 1.12)
Go version: go1.10.8
Git commit: 0dd43dd
Built: Wed Jul 17 17:10:42 2019
OS/Arch: linux/amd64
Experimental: false
任何输入将不胜感激。
问候 Senthil Nathan M
bash: docker: command not found
.
您的容器中没有安装 docker 客户端。从容器内的主机挂载 /var/run/docker.sock
只会让容器的 docker 客户端与主机的 docker 守护进程对话。您仍然需要在您的容器中至少安装 docker 客户端。