标签: docker-daemon

WSL2 无法连接到 Docker 守护进程

这是我的设置:

  • Windows 10 PRO - build 19041.153 - 内部程序 - 慢环
  • Ubuntu 18.04LTS WSL2 模式下的子系统
  • Docker for desktop 2.2.0.4 - 启用与我的 Ubuntu 子系统的 WSL2 集成

我目前被迫使用Windows进行开发,所以我成为了microsoft Insider成员并以WSL2模式安装了ubuntu。Docker 桌面支持 WSL2 的集成,所以我尝试了......一周以来它完美无缺。今天电脑重启后,我无法再次运行docker。Ubuntu 可以看到从 Docker 桌面注入的二进制文件,但它无法再连接到 Windows 托管的 docker 守护进程。

当我调用 subsys 终端时,docker info它返回

$ docker info
Client:
 Debug Mode: false

Server:
ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
errors pretty printing info
Run Code Online (Sandbox Code Playgroud)

或与 docker-compose up

ERROR: Couldn't connect to Docker daemon at http+docker://localhost …
Run Code Online (Sandbox Code Playgroud)

docker windows-subsystem-for-linux docker-desktop docker-daemon wsl-2

34
推荐指数
7
解决办法
3万
查看次数

如何在 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

$ export DOCKER_HOST=tcp://0.0.0.0:2375
$ sudo service docker restart
$ docker context ls
NAME                DESCRIPTION                               DOCKER ENDPOINT      KUBERNETES ENDPOINT   ORCHESTRATOR
default *           Current DOCKER_HOST based configuration   tcp://0.0.0.0:2375                         swarm
Warning: DOCKER_HOST environment variable overrides the active context. To use a context, either set the global --context flag, or unset DOCKER_HOST environment variable.
$ curl --unix-socket /var/run/docker.sock http:/localhost/version
{"Platform":{"Name":"Docker Engine …
Run Code Online (Sandbox Code Playgroud)

docker windows-subsystem-for-linux docker-daemon wsl-2

15
推荐指数
1
解决办法
2万
查看次数

docker.socket:在保护 docker 守护进程套接字后失败,结果为“service-start-limit-hit”

我按照此处文档中提供的步骤为 docker api 添加 tls 安全性。证书位于~/.docker/以及/etc/ docker /ssl/文件夹中。我将override.conf添加到/etc/systemd/system/docker.service.d/与内容

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 --tlsverify --tlscacert=ca.pem --tlscert=server-cert.pem --tlskey=server-key.pem
Run Code Online (Sandbox Code Playgroud)

然后,我使用了 daemon-reload 和 docker start

$ systemctl daemon-reload
$ service docker start
Run Code Online (Sandbox Code Playgroud)

journalctl -xe 中的错误是:

-- Unit docker.socket has finished starting up.
-- 
-- The start-up result is RESULT.
Jan 15 21:43:24 cynicalplyaground systemd[1]: docker.service: Start request repeated too quickly.
Jan 15 21:43:24 cynicalplyaground systemd[1]: docker.service: Failed with result 'exit-code'.
Jan 15 …
Run Code Online (Sandbox Code Playgroud)

docker docker-daemon

11
推荐指数
3
解决办法
3万
查看次数

containerd-shim的父进程是什么进程?

我使用 minikube 设置了 2 个 k8s 环境。一张带--container-runtime=docker旗帜,一张带--container-runtime=containerd旗帜。这是我看到的差异。

当我设定时container-runtime=docker,这些事情就会发生

  1. 有一个dockerd服务正在运行
  2. 该服务作为其自己的子项dockerd生成containerd
  3. 有些/usr/bin/containerd-shim-runc-v2进程运行实际的容器,每个进程的父进程containerd-shim-runc-v2在系统上都是 PID 1。

当我设定时container-runtime=containerd,这些事情就会发生

  1. 那里没有dockerd服务,没有任何含糊之处。
  2. 有一个containerd进程,其所有者为 PID 1。同样,这并不奇怪。
  3. 有些containerd-shim进程运行实际的容器,每个containerd-shim进程的父进程是containerd

这是我的问题

  1. containerd-shim和之间有什么区别containerd-shim-runc-v2?他们似乎大多采用相似的旗帜等。
  2. 为什么在场景 1 中,垫片是 PID 1 的子级,而场景 2 中的垫片是 containerd 的子级

编辑:刚刚想到编辑。在ubuntu 20机器上,如果我安装docker,dockerd是一个单独的进程,其父进程是PID 1,containerd是一个单独的进程,其父进程是PID 1,所有容器都是container-shim-runc-v2的子进程,其PID为1 ?!?!为什么不是containerd孩子dockerd?这是在哪里配置的?

runc minikube containerd docker-daemon

8
推荐指数
1
解决办法
2万
查看次数

Mac book Pro 上的 Docker Desktop 安装错误 - OS Monterey - 错误:调用远程方法“desktop-go-backend”时出错

我尝试使用 Docker Desktop for Mac(英特尔芯片)安装 Docker Desktop,但失败并出现以下错误:

\n
Error invoking remote method \'desktop-go-backend\': Error: {"message":"installing vmnetd: retrieving vmnetd version from /Library/LaunchDaemons/com.docker.vmnetd.plist: reading plist /Library/LaunchDaemons/com.docker.vmnetd.plist: open /Library/LaunchDaemons/com.docker.vmnetd.plist: no such file or directory\\\\ngithub.com/docker/pinata/mac/tools/install/privileged.getValueFromPlist\\\\n\\\\tgithub.com/docker/pinata/mac/tools/install/privileged/vmnetd.go:175\\\\ngithub.com/docker/pinata/mac/tools/install/privileged.setupVmnetd\\\\n\\\\tgithub.com/docker/pinata/mac/tools/install/privileged/vmnetd.go:85\\\\ngithub.com/docker/pinata/mac/tools/install/privileged.ApplyCustomConfiguration\\\\n\\\\tgithub.com/docker/pinata/mac/tools/install/privileged/privileged.go:137\\\\ngithub.com/docker/pinata/mac/tools/install/privileged.ConfigCmd.func1\\\\n\\\\tgithub.com/docker/pinata/mac/tools/install/privileged/privileged.go:59\\\\ngithub.com/spf13/cobra.(\\*Command).execute\\\\n\\\\tgithub.com/spf13/cobra@v1.7.0/command.go:940\\\\ngithub.com/spf13/cobra.(\\*Command).ExecuteC\\\\n\\\\tgithub.com/spf13/cobra@v1.7.0/command.go:1068\\\\ngithub.com/spf13/cobra.(\\*Command).Execute\\\\n\\\\tgithub.com/spf13/cobra@v1.7.0/command.go:992\\\\nmain.main\\\\n\\\\tgithub.com/docker/pinata/mac/tools/install/main.go:185\\\\nruntime.main\\\\n\\\\truntime/proc.go:250\\\\nruntime.goexit\\\\n\\\\truntime/asm_amd64.s:1598\\\\ngithub.com/docker/pinata/mac/tools/install/privileged.setupVmnetd\\\\n\\\\tgithub.com/docker/pinata/mac/tools/install/privileged/vmnetd.go:87\\\\ngithub.com/docker/pinata/mac/tools/install/privileged.ApplyCustomConfiguration\\\\n\\\\tgithub.com/docker/pinata/mac/tools/install/privileged/privileged.go:137\\\\ngithub.com/docker/pinata/mac/tools/install/privileged.ConfigCmd.func1\\\\n\\\\tgithub.com/docker/pinata/mac/tools/install/privileged/privileged.go:59\\\\ngithub.com/spf13/cobra.(\\*Command).execute\\\\n\\\\tgithub.com/spf13/cobra@v1.7.0/command.go:940\\\\ngithub.com/spf13/cobra.(\\*Command).ExecuteC\\\\n\\\\tgithub.com/spf13/cobra@v1.7.0/command.go:1068\\\\ngithub.com/spf13/cobra.(\\*Command).Execute\\\\n\\\\tgithub.com/spf13/cobra@v1.7.0/command.go:992\\\\nmain.main\\\\n\\\\tgithub.com/docker/pinata/mac/tools/install/main.go:185\\\\nruntime.main\\\\n\\\\truntime/proc.go:250\\\\nruntime.goexit\\\\n\\\\truntime/asm_amd64.s:1598"}\n
Run Code Online (Sandbox Code Playgroud)\n

我尝试卸载并重新安装适用于 mac 的 Docker 桌面几次。它没有解决问题。然后我找到了这个答案 - Unable to finish Docker Install on Mac book Error invoking Remote method 'desktop-go-backend'

\n

我尝试了命令 -brew install --cask docker

\n

它说以下错误:\'/Applications/Docker.app\' 已经有一个应用程序。

\n

我尝试运行命令 -

\n
/Applications/Docker.app/Contents/MacOS/uninstall\n
Run Code Online (Sandbox Code Playgroud)\n

并得到 zsh: 没有这样的文件或目录:/Applications/Docker.app/Contents/MacOS/uninstall

\n

我运行命令来检查 Docker 安装在哪里

\n
ls -ltrh /usr/local/bin/docker\nlrwxr-xr-x  1 root …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose docker-daemon

8
推荐指数
3
解决办法
1万
查看次数

无法启动 docker-daemon:Firewalld:docker 区域已存在

运行后我有以下内容firewall-cmd --get-active-zones

public
  interfaces: virbr0 docker0 lxcbr0 wlan0
trusted
  sources: 172.17.0.0/16 53.0.0.0/8
Run Code Online (Sandbox Code Playgroud)

这些是我从无法启动守护进程中获得的见解:初始化网络控制器时出错:创建默认“桥接”网络时出错

问题是,sudo dockerd失败并出现错误消息,其中有

failed to start daemon: Error initializing network controller: Error creating default "bridge" network: Failed to program NAT chain: ZONE_CONFLICT: 'docker0' already bound to a zone
Run Code Online (Sandbox Code Playgroud)

如何操作该区域以便我可以启动 docker 守护进程?

编辑:这个解决方案对我有用:

sudo firewall-cmd --permanent --new-zone=docker 
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --zone=docker --add-interface=docker0
Run Code Online (Sandbox Code Playgroud)

docker-daemon

7
推荐指数
1
解决办法
5557
查看次数

修复 (Mac) 操作系统升级后“Docker 守护进程无法启动”错误

在收到大量消息说我应该升级操作系统后,我最终决定升级到macOS Big Sur v11.6.1

不幸的是,docker 不再工作了。

我收到错误:

Fatal Error

Docker daemon failed to start
Run Code Online (Sandbox Code Playgroud)

2021-12-07T09:47:14Z dockerd time="2021-12-07T09:47:14.957430297Z" level=debug msg="Calling GET /version"
Run Code Online (Sandbox Code Playgroud)

docker错误

我可以看到将Docker 重置为出厂默认设置的选项,但我害怕重置,因为这意味着我还将删除所有 docker 映像。

有没有什么简单的方法可以解决这个问题而不删除我的工作?

macos docker docker-daemon macos-big-sur

7
推荐指数
1
解决办法
5724
查看次数

构建上下文大小会影响图像大小吗?

当我构建图像时,docker build输出包含上下文大小,例如:

Sending build context to Docker daemon  1.315GB
[...]
Successfully built a9ec4d33e12e
Run Code Online (Sandbox Code Playgroud)

这个尺寸会影响最终图像的尺寸吗?我应该设法减少它吗?

docker docker-build docker-daemon

6
推荐指数
2
解决办法
1712
查看次数

准备失败:尝试连接到位于 unix:///var/run/docker.sock 的 Docker 守护程序套接字时权限被拒绝

尝试将 gitlab 中的项目转换为 docker 镜像。gitlab 是自托管的。这是我得到的错误:

Running with gitlab-runner 13.12.0 (7a6612da)
on test -KnwQXuT
Preparing the "docker" executor
ERROR: Failed to remove network for build
ERROR: Preparation failed: Got permission denied while trying to connect to the Docker daemon 
socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.25/info: dial 
unix /var/run/docker.sock: connect: permission denied (docker.go:858:0s)
Run Code Online (Sandbox Code Playgroud)

我添加了一个跑步者,注册了它,使用 docker 模板创建了一个 gitlab-ci.yml ,我没有修改它。作为解决方案,我chmod 666 /var/run/docker.sock在添加跑步者之前和之后尝试过,但它不起作用。我还在运行和注册 docker runner 之前添加了 sudo 但仍然没有成功。我找到了另一个选项将我的 docker 用户添加到 docker 组,但我的所有用户都在 docker 组中。docker runner 作为 docker 镜像运行。我不知道该怎么办...请帮忙。我尝试了大约 10 天,但没有成功...提前致谢

gitlab docker gitlab-ci-runner docker-daemon cicd

6
推荐指数
2
解决办法
8768
查看次数

修改 Rancher Desktop VM 中的 docker 守护进程配置

有没有办法修改 Rancher Desktop VM 中的 docker 守护进程配置,例如添加不安全的注册表等...?

进行此类修改后,我想重新启动 docker 守护进程以应用更改。有没有办法连接到 Rancher Desktop VM?

在https://docs.rancherdesktop.io/faq中没有找到任何相关内容

docker-daemon rancher-desktop

6
推荐指数
1
解决办法
4041
查看次数