【发布时间】:2019-10-30 06:37:04
【问题描述】:
我正在尝试在 docker 容器中运行 docker,并且容器具有 nodeJs 应用程序。
这是我的 Dockerfile:
FROM docker:dind
WORKDIR /app
RUN apk add --update nodejs nodejs-npm
COPY . /app
RUN npm install
CMD node app.js
EXPOSE 4000
我使用上面的 Dockerfile 构建了 docker 镜像(newdockerimage)并使用docker run -d --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker:/var/lib/docker newdockerimage 创建了容器。
我可以在容器内安装 docker,但 由于体积的原因,主机系统上的所有 docker 映像也在容器内共享 (/var/run/docker.sock)。
如果我在运行容器时不使用音量 -v /var/run/docker.sock:/var/run/docker.sock,我会遇到以下错误:-
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
因为容器将是节点应用程序(因为那是入口点),所以覆盖 docker:dind 入口点
请帮帮我!如何在不共享卷的情况下在容器内运行 docker(不复制主机系统的 docker 映像)
【问题讨论】:
标签: docker dockerfile docker-volume docker-in-docker