无法将docker.sock绑定到docker服务
我正在尝试设置一个docker服务(通过terraform),它将jenkins作为容器运行。我想将主机VM的docker docket绑定到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
/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 bashroot@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
二进制文件,这是实现此功能所必需的另一部分。