首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从码头启动停靠-无法连接到守护进程

从码头启动停靠-无法连接到守护进程
EN

Stack Overflow用户
提问于 2020-08-25 09:43:10
回答 1查看 1.3K关注 0票数 1

我正试着从码头集装箱里启动一个码头集装箱。我找到了关于这个问题的多篇文章,但没有针对这个具体的案例。到目前为止,我发现,我需要在容器中安装docker,并将主机/var/run/docker.sh挂载到容器的/var/run/docker.sh。

然而,我得到了错误:

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

代码语言:javascript
复制
FROM golang:alpine as builder
RUN mkdir /build
ADD . /build/
WORKDIR /build
RUN go build -o main .
FROM alpine
RUN adduser -S -D -H -h /app appuser
RUN apk update && apk add --no-cache docker-cli
COPY --from=builder /build/main /app/
WORKDIR /app
USER root
ENTRYPOINT [ "/app/main" ]

我从Go代码中运行的命令:

代码语言:javascript
复制
// Start a new docker
cmd := exec.Command("docker", "ps") // Changed to "ps" just as a quick check
cmd.Run()

并运行命令启动第一个坞容器:

代码语言:javascript
复制
docker run --privileged -v /var/run/docker.sh:/var/run/docker.sh firsttest:1.0

为什么容器不能连接到码头守护进程?我还需要包括其他的东西吗?我试图以sudo的形式运行Go命令,但正如预期的那样:

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

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

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

我是误解了什么,还是需要在Dockerfile中包含其他内容?我真的搞不懂,谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-25 09:46:33

我不知道您为什么要在Docker容器内运行Docker,除非您是码头开发人员。当我想要做这样的事情时,我试图解决一些潜在的架构问题,而我应该首先解决这些问题。

如果您真的想这样做,可以将/var/run/docker.sock挂载到容器中:

代码语言:javascript
复制
docker run --privileged -v /var/run/docker.sh:/var/run/docker.sh -v /var/run/docker.sock:/var/run/docker.sock firsttest:1.0
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63576135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档