问题标签 [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 回答
1408 浏览

docker - 如何在 Hyper-V 上以编程方式启用“在没有 TLS 的 tcp://localhost:2375 上公开守护程序”(Windows 10 v2004)

我正在尝试使用 WSL2 和 Docker Desktop 在 Windows 10 (v2004) 上自动安装和配置 Docker。

默认情况下,Docker 桌面设置Expose daemon on tcp://localhost:2375 without TLS未启用。

如何在不使用 GUI 的情况下启用此选项,即有没有办法以编程方式执行此操作?

0 投票
1 回答
201 浏览

docker - docker 守护进程日志中的可疑 ID

我遇到了一个 docker 集群的问题,查看日志我发现了一个奇怪的日志条目: Aug 3 02:48:36 <hostname> dockerd: time="2020-08-03T02:48:36.967863272Z" level=info msg="NetworkDB stats <hostname>(59eadb9debca) - netID:o30h5ct285gjcvytl89oaeqi7 leaving:false netPeers:12 entries:24 Queue qLen:0 netMsg/s:0" 我说这很奇怪,因为我无法弄清楚日志的 ID 部分代表什么。docker 节点本身有另一个 ID,并且没有运行该 ID 的容器。检查其他节点,它们都具有相似的 ID。有人知道这个 ID 代表什么以及如何使用 docker 客户端检索它吗?

谢谢

0 投票
1 回答
94 浏览

docker - docker load:检查是否是最新的

我的应用程序在 Docker 容器中运行,并且我在其中使用离线部署

  1. docker save我的开发机器上的图像并将其与应用程序捆绑在一起
  2. 通过 U 盘手动传输 tarfile 包和我的应用程序
  3. docker load它在目标机器上(目标未连接到网络)

步骤 1 和 3 由 BASH 脚本 (Linux) 执行。

应用程序更新通常不需要更新 Docker 映像,并且由于docker save非常docker load缓慢且资源密集,我希望尽可能避免这些步骤。

有没有办法找出tar'ed 图像是否等于IMAGE:TAG我的 Docker 守护程序上的图像?

我已经尝试skopeo inspect docker-archive:...docker image inspect ...输出进行比较,但似乎没有要比较的图像 ID。docker save我已经看到 RootFS 层是平等的,但这是我可以跳过/的有力保证docker load吗?

0 投票
0 回答
97 浏览

docker - 如何在 docker daemon 中禁止 docker run 命令以及如何限制单个用户对 docker daemon 的访问

目标: 我有 200 多个使用 docker 构建的项目,他们在自己的 docker 守护进程中运行 docker。为了降低成本,我设置了一个中央 docker build 服务器,我必须允许所有项目安全地构建 docker 映像

描述我通过在 jenkins 中安装 docker插件并通过 docker API 连接到我的 docker 主机 ,使用 jenkins docker 管道创建了设置。当我运行构建时,它启动 docker 主机作为 jenkins 从容器并允许运行 docker build

问题 设置适用于构建 docker 映像,但我关心的是安全性如何安全地允许 200 多个项目连接 docker 守护进程?如何根据角色限制每个用户的访问?如何在 docker daemon 中禁止 docker run 命令?他们被限制运行 docker run

我使用的平台:Jenkins 在 Linux 盒子中的 redhatopenshift docker 主机中运行

任何人都可以建议我修复这个安全漏洞的步骤吗

问候阿希夫

0 投票
1 回答
315 浏览

docker - 无法在 ubuntu 20.04 中运行 docker

我曾尝试安装 docker,就像我在许多网站上阅读的一样,使用相同的步骤,但它不起作用,并且总是向我发送错误消息:docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.我找不到有效的解决方案。

之后我尝试测试了一下sudo snap,我惊讶地发现我可以使用安装 dockersudo snap install docker并且它看起来像它的工作,但是当我运行时sudo docker run -dt centos bash,我得到了同样的错误。这不仅是 CentOS 的问题,我曾用 kali、mint、ubuntu 和 fedora 尝试过,但没有一个能工作,而且错误总是一样/

感谢帮助。

0 投票
1 回答
6015 浏览

docker - 如何在 WSL2 上公开 Docker TCP 套接字?(WSL 安装的 Docker,而不是 Docker Desktop)

我想通过 PyCharm 连接到在 WSL2 中运行的 Docker TCP 套接字。我似乎无法公开套接字,我想可能是因为 WSL2(systemctl)中对 docker-daemon 的控制有限?我不能使用 Docker Desktop,因为我需要 GPU 支持(Windows Dev Channel + nvidia-docker)。我尝试了以下方法:

导出 DOCKER_HOST=tcp://0.0.0.0:2375

我希望给出的最后一个命令会产生类似{"Version":"17.05.0-ce","ApiVersion":"...}但连接被拒绝的结果。事实上,如果我尝试通过 Windows 主机 Pycharm 连接,它会拒绝连接。我还看到许多教程/SO 帖子说不要使用这种 DOCKER_HOST 方法,但我不知道为什么。

/lib/systemd/system/docker.service > ExecStart

根据stackoverflowserverfaultivankrizsan,我/lib/systemd/system/docker.service使用ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375. 但是当我尝试systemctl daemon-reload错误时;WSL2 不支持systemctl命令 ( WSL/457 )。

我还尝试重新启动 WSL2(Powershell wsl --shutdown,重新打开 WSL2),以防 docker-daemon 选择这些更改,但没有雪茄。

/etc/default/docker > DOCKER_OPTS

根据stackoverflow,我/etc/default/dockerDOCKER_OPTS="-H unix:// -H tcp://0.0.0.0:2375"then 进行了编辑sudo service docker restart。相同的连接被拒绝错误。

0 投票
1 回答
1070 浏览

docker - 从 docker 启动 docker - 无法连接到守护进程

我正在尝试从 docker 容器内部启动一个 docker 容器。我发现了多个有关此问题的帖子,但不适用于此特定情况。到目前为止我发现的是,我需要在容器中安装 docker,并将主机 /var/run/docker.sh 挂载到容器的 /var/run/docker.sh。
但是我得到了错误:

无法连接到 unix:///var/run/docker.sock 上的 Docker 守护程序。docker 守护进程是否正在运行?我的 Dockerfile:

我从 Go 代码运行的命令:

我运行的命令启动第一个 docker 容器:

为什么容器无法连接到 docker daemon?我需要包含其他内容吗?我尝试将 Go 命令作为 sudo 运行,但正如预期的那样:

exec: "sudo": $PATH 中找不到可执行文件

我试图将 Dockerfile 中的用户更改为 root,这并没有改变任何东西。我也无法在容器本身上启动 docker 守护进程:

exec:“服务”:在 $PATH 中找不到可执行文件

我是否误解了某些内容,或者我是否需要在 Dockerfile 中包含其他内容?实在想不通,多谢帮助!

0 投票
0 回答
401 浏览

linux - Docker 守护进程 Bip 配置

我正在尝试编写一个自动化脚本来在 CentOS 中安装 docker,并使用 docker 守护程序文件进行 bip 配置。但是,/etc/docker/在安装后启动 docker 服务之前,不会创建 docker 目录。所以,目前我需要创建/etc/docker/daemon.json文件,然后重新启动 docker 服务以获取所需的守护进程子网。

有什么办法,我可以在第一次启动docker服务之前配置bip。一旦 docker 服务启动,它会获取默认子网(172.17.0.1/16),并且需要两次启动 docker 服务以进行基本设置。

0 投票
0 回答
98 浏览

javascript - 如何仅公开 dockerd websocket 端点?

我正在开发一个服务器托管项目,客户端需要能够访问其 docker 容器的 xterm 虚拟终端,这将允许它们与正在运行的进程进行交互。

为此,我在本地网络上公开了 dockerd API,这反过来又使其对网络服务器完全可用。本地网络上的客户端可以访问 ws attach 端点,也可以访问 API 的其余部分,这是我肯定不想要的副作用。

我的问题是我现在需要让外部客户端可以访问 websocket 附加端点,而不暴露完整的 api。这可能吗,如果可以,怎么办?

这是我认为理想的结构图 基础架构图

0 投票
0 回答
34 浏览

docker - Docker 似乎无法识别我的 daemon.json 文件

因为我电脑的C盘比较小,我想把图片保存到我的D盘。为此,我daemon.jsonC:\ProgramData\Docker\config\daemon.json. 在里面,我只放了以下内容:

但是,在构建新图像时,它似乎并没有出现在指定的文件夹中......有什么想法吗?

编辑:我必须自己创建配置文件夹和daemon.json文件,尽管我相信这是有意的。