gpt4 book ai didi

docker:挂载/var/run/docker.sock后找不到

转载 作者:行者123 更新时间:2023-12-01 14:59:50 31 4
gpt4 key购买 nike

我正在尝试在容器内使用 docker 命令。
我使用此命令挂载/var/run/docker.sock 并运行容器

docker run -d --name gitlab-runner --restart always \                                                                  
-v /var/run/docker.sock:/var/run/docker.sock \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
gitlab/gitlab-runner:latest

但是当我尝试在容器内使用docker(gitlab-runner)时出现错误
docker: not found

主持人:
srw-rw----  1 root docker    0 Mar 23 15:13 docker.sock

容器:
0 srw-rw---- 1 root gitlab-runner    0 Mar 23 15:13 docker.sock

这很好用,在我删除旧容器并创建新容器之前,现在我无法在容器内运行 docker。请帮忙。

最佳答案

您应该区分 docker daemon 和 docker CLI。第一个是服务,它实际上执行所有工作——构建和运行容器。第二个是可执行文件,用于向守护进程发送命令 .

可执行文件(docker CLI)是轻量级的,使用 /var/run/docker.sock访问守护进程(默认情况下,实际上有不同的传输)。

当您使用 -v /var/run/docker.sock:/var/run/docker.sock 启动容器时你居然分享您的主机的 docker daemon 到容器中的 docker CLI。因此,您仍然需要在容器内安装 docker CLI 以使用 Docker,但您不需要在内部设置守护程序(这非常复杂并且需要特权模式)。

结论

在容器内安装 docker CLI,共享套接字并享受。但是在使用主机的 docker daemon 时,您可能会对绑定(bind)挂载卷感到困惑,因为 daemon 看不到容器的内部文件系统。

关于docker:挂载/var/run/docker.sock后找不到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55315528/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com