问题标签 [docker-daemon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
202 浏览

docker - 使用 127.0.0.1:2375 通过 tcp 启用远程 docker 访问失败,但在使用 0.0.0.0:2375 时有效

我目前正在运行 Ubuntu 20.04 并尝试使用官方docker guidesystemd中列出的方法通过 tcp 公开远程 docker 访问。

但是我注意到它仅在 IP 地址被列为0.0.0.0而不是127.0.0.1.

我可以知道是什么导致它只能使用0.0.0.0:2375并且使用任一环回地址是否有任何显着差异?

0 投票
0 回答
199 浏览

docker - Docker 守护进程已经运行但仍然得到:无法连接到 unix:///var/run/docker.sock 上的 Docker 守护进程。docker 守护进程是否正在运行?

我正在尝试在远程服务器上运行的容器上使用 vscode,但是当我使用“附加 Visual Studio 代码”功能时,我得到了这个: 在此处输入图像描述

我有 docker 守护进程正在运行: 在此处输入图像描述

在此处输入图像描述 我在“docker”组中,我可以在没有 sudo 的情况下运行 docker:

在此处输入图像描述

我在这里没有解决方案有人可以帮助我吗?

@Romain 这是打印出来的ps aux | grep -i vscode(我只是截取了我的用户 ID 的过程): 在此处输入图像描述 系统信息:Ubuntu 16.04.6 LTS;vscode版本:版本:1.60.0-insider(通用)提交:699084fdb48460c68086b85b5c08f3d39055e772;vscode Docker 扩展版本:v1.15.0

0 投票
1 回答
447 浏览

docker - 命令 dockerd 中开关 --containerd 的目的是什么?

如果我运行systemctl cat docker.service检查 docker.service 的单元文件, ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock可以在 docker 的默认单元文件中找到。

我的问题是切换的目的是什么 --containerd=/run/containerd/containerd.sock

根据这个问题的答案,如果我为 docker.service 生成一个覆盖文件,内容为:

有效的配置是:

并将--containerd=/run/containerd/containerd.sock被省略。

那么这个配置会导致什么情况呢?我希望 docker 在启用 TLS 保护的情况下可以在本地和远程正常工作。我还需要通过 ssh 调用 docker 守护进程。

先感谢您。

0 投票
1 回答
78 浏览

windows - DockerDesktopVM 不断循环寻找“docker-proxy”

我正在尝试使用 hyper-v 后端在 Windows(10 企业版)上运行 Docker Desktop。

但是当 docker 尝试启动守护进程时,hyper-v 管理的 vmDockerDesktopVM无法达到docker-proxy消息循环

客户端:在<和它一直在尝试的时间>之后仍在等待 docker-proxy

它会重试,直到 Docker Desktop 放弃并告诉我它无法启动 Hyper-V 后端。

我尝试了几个版本的 docker desktop(3.5.2 和 3.6.0),这些版本已被证明可以在我同事的相同(据说)机器上工作......

任何关于如何调查/完成这项工作的想法都非常受欢迎。

0 投票
0 回答
35 浏览

docker - 如何配置 docker daemon.json 以始终挂载特定路径?

我想总是在容器启动时挂载主机的特定路径。

是否可以配置daemon.json为执行此操作而不是从命令中指定-v选项docker run

0 投票
0 回答
185 浏览

docker - 无法在 Ubuntu 仿生上运行 docker 守护进程

我无法在 Ubuntu Bionic 上启动 dockerd 守护程序(Docker 版本 20.10.9,构建 79ea9d3)。我正在从根控制台运行 dockerd 命令,但是,它抱怨缺少权限。有任何想法吗?

0 投票
0 回答
68 浏览

docker - 使用“外部”泊坞窗守护程序时,Paketo buildpack 绑定不起作用

我有一个带有主节点和多个工作/从节点的 Jenkins 设置。工作人员是在虚拟机上运行的 docker 容器。容器本身没有运行(也没有安装)docker 守护进程。他们/var/run/docker.sock为此从主机安装。

当我构建映像时,它无法包含我作为绑定添加到构建中的一些 CA 证书。

我的应用程序设置(Spring Boot + Gradle)如下:

我将此文件夹作为绑定安装在我的gradle任务中(来自 Spring Boot Gradle 插件)

在我的本地机器上,这按预期工作。

在 Jenkins 上运行构建时,缺少带有附加 CA 证书的输出。并且生成的容器不包含它们。

经过两天的搜索,我发现这是因为 Jenkins slave 的设置。构建运行时,docker 守护程序(在主机系统上运行)不知道/无法访问项目目录,因此无法将包含 pem 文件的文件夹挂载到构建容器。它不会抛出任何错误。它会在主机系统上创建目录/home/jenkins/workspaces/project/ca-certificates/binding(然后将空文件夹挂载到构建容器,我猜)。

我认为这是环境中卷和 docker 容器的普遍问题,其中 docker 守护进程无法访问客户端的文件系统。我和一位同事一起发现了这个问题,该同事目前正在测试在 Minikube 中安装 docker 守护程序作为 Mac 和 Windows 上 Docker Desktop 的替代方案。

我现在只能想到两个解决这个问题的方法:在我所有的 Jenkins 从站中安装 docker 守护进程,或者构建和使用我自己的构建器镜像,它已经包含了证书。

这两种解决方案都有其缺点。在实现第一个时,我需要在我的所有奴隶中处理我的私人注册表的凭据。后者需要定期构建新版本以获取构建器映像的更新。此外,这只会修复这种特定情况,我需要容器中的这三个特定文件。

你还有别的想法吗?

提前致谢!

0 投票
0 回答
28 浏览

docker - Azure Devops Microsoft 托管的 Ubuntu 代理集成测试无法调用 Docker Rest Api

Azure 管道存在问题。在管道内部,我们正在运行集成测试,这些测试与 Docker Rest API 交互以运行特定容器(为此我们使用 Docker.DotNet)。一切都可以在本地托管的构建代理上运行,但不能在 Microsoft 托管(基于 Ubuntu)上运行。所有对 Docker REST API 的调用都以超时异常结束。Microsoft 托管的 Ubuntu 构建代理中的 Docker 引擎是否包含 Docker REST API?

0 投票
0 回答
53 浏览

docker - How to expose docker daemon metrics over HTTPS?

Docker daemon metrics can be enabled by setting dockerd options:

The above can also be done by configuring /etc/docker/daemon.json. This would expose my metrics on localhost:9323 over HTTP. I can access my metrics through curl, for example:

However, I want to expose my docker daemon metrics over HTTPS to be scraped using Prometheus. Is there a way to do this?

I tried enabling TLS verification by setting the following flags: --tls-verify, --tlscert, --tlskey and --tlscacert, but this does not affect the metrics endpoint.

0 投票
1 回答
652 浏览

docker - 无法连接到 unix:///var/run/docker.sock 上的 Docker 守护程序。docker 守护进程是否正在运行?带有自托管运行器的 Gitlab Cloud CI/CD 错误

我在 Ubuntu 18.04.6 LTS 上使用 gitlab-runner 版本 14.4.0 和 docker 版本 20.10.11 我用于跑步者的机器是功能强大的 Supermicro 服务器。我们的 Gitlab CI 在 gitlab cloud (SAAS) 上

我在构建阶段作业中收到以下错误:

  1. 错误:作业失败(系统故障):无法在 unix:///var/run/docker.sock 连接到 Docker 守护程序。docker 守护进程是否正在运行?(exec.go:66:120s)
  2. 错误:作业失败(系统故障):无法连接到 unix:///var/run/docker.sock 上的 Docker 守护程序。docker 守护进程是否正在运行?(docker.go:708:120s)
  3. 准备失败:添加缓存卷:设置卷权限:为卷“runner-######-project-#####-concurrent-0-cache-##########创建权限容器####":无法连接到 unix:///var/run/docker.sock 上的 Docker 守护进程。docker 守护进程是否正在运行?(linux_set.go:90:120s)
  4. 错误:作业失败(系统故障):准备环境:无法在 unix:///var/run/docker.sock 连接到 Docker 守护程序。docker 守护进程是否正在运行?(docker.go:708:120s)。检查https://docs.gitlab.com/runner/shells/index.html#shell-profile-loading了解更多信息

到目前为止我尝试过的解决方案:

  1. 在 config.toml 中为所有跑步者添加了多拉策略:pull_policy = ["always", "if-not-present"]
  2. 为 docker 和 sudo 组授予 gitlab-runner 用户权限
  3. 试过 chmod 666 /var/run/docker.sock
  4. systemctl docker enable & systemctl docker start
  5. 重新启动 gitlab-runner 并重新加载守护进程
  6. 使用 Ubuntu 18.04.6 LTS、最新的 docker 和 gitlab-runner 从头开始​​安装机器

似乎什么都没有解决这个问题。通常只是在错误使作业运行后重新启动作业。但这不是解决方案。

我是新手,感谢您的帮助!

谢谢