ERROR: Could not connect to Docker daemon at http+docker://localhost - is it running?
ERROR: Could not connect to Docker daemon at http+docker://localhost - is it running?
这是我的docker文件
FROM ubuntu:latest
RUN apt-get update \
&& apt-get install -y git
RUN mkdir api
WORKDIR ./api
RUN git clone --branch develop https://link
WORKDIR ./api/api/
RUN apt-get install -y docker.io
RUN apt-get -y install curl
RUN curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
RUN mv /usr/local/bin/docker-compose /usr/bin/docker-compose
RUN chmod +x /usr/bin/docker-compose
RUN docker-compose up
我想 docker-在 docker 图像 中合成。然而,
它给出 错误:无法连接到位于 http+docker://localhost 的 Docker 守护程序 - 是 运行 吗?和
如果它位于非标准位置,请使用 DOCKER_HOST 环境变量指定 URL
我如何解决这个问题我 搜索了 但 none 有效?
我建议重新考虑这个 Docker 文件的整个方法:你不能 运行 Docker 守护程序在 Docker 文件中,你可以'不要启动任何类型的后台进程。主机上 运行 的 shell 脚本可能更匹配。
运行 Docker 文件中的任何类型的守护进程大多不起作用;在每个 RUN
指令结束时,所有 运行ning 进程都将终止。创建 Docker 映像不会保留任何 运行ning 进程,仅保留最终文件系统和元数据,例如启动容器时默认的 CMD
到 运行。因此,即使 docker-compose up
有效,其结果也不会保留在您的图像中。
运行 Docker 容器内的 Docker 守护进程很困难,通常不鼓励。 (共享主机的 Docker 套接字具有重大的安全隐患,但这是首选方法。)无论哪种方式都需要一些额外的权限,这在 Docker 文件中同样不可用。
这里对我来说另一个危险信号是 RUN git clone
行。由于 Docker 的层缓存,很高兴说 "oh, I've already RUN git clone
so I don't need to repeat that step" 并且您不会以当前代码结束。将远程 git 存储库的凭据输入 Docker 文件也很棘手。我还建议 运行ning 源代码控制命令专门用于主机而不是 Docker 文件。
此处的标准方法是将 docker-compose.yml
文件提交到存储库的顶部,并直接从主机提交 运行 git clone
和 docker-compose up
。您不能将 Docker 文件用作通用自动化工具。
这是我的docker文件
FROM ubuntu:latest
RUN apt-get update \
&& apt-get install -y git
RUN mkdir api
WORKDIR ./api
RUN git clone --branch develop https://link
WORKDIR ./api/api/
RUN apt-get install -y docker.io
RUN apt-get -y install curl
RUN curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
RUN mv /usr/local/bin/docker-compose /usr/bin/docker-compose
RUN chmod +x /usr/bin/docker-compose
RUN docker-compose up
我想 docker-在 docker 图像 中合成。然而,
它给出 错误:无法连接到位于 http+docker://localhost 的 Docker 守护程序 - 是 运行 吗?和 如果它位于非标准位置,请使用 DOCKER_HOST 环境变量指定 URL
我如何解决这个问题我 搜索了 但 none 有效?
我建议重新考虑这个 Docker 文件的整个方法:你不能 运行 Docker 守护程序在 Docker 文件中,你可以'不要启动任何类型的后台进程。主机上 运行 的 shell 脚本可能更匹配。
运行 Docker 文件中的任何类型的守护进程大多不起作用;在每个 RUN
指令结束时,所有 运行ning 进程都将终止。创建 Docker 映像不会保留任何 运行ning 进程,仅保留最终文件系统和元数据,例如启动容器时默认的 CMD
到 运行。因此,即使 docker-compose up
有效,其结果也不会保留在您的图像中。
运行 Docker 容器内的 Docker 守护进程很困难,通常不鼓励。 (共享主机的 Docker 套接字具有重大的安全隐患,但这是首选方法。)无论哪种方式都需要一些额外的权限,这在 Docker 文件中同样不可用。
这里对我来说另一个危险信号是 RUN git clone
行。由于 Docker 的层缓存,很高兴说 "oh, I've already RUN git clone
so I don't need to repeat that step" 并且您不会以当前代码结束。将远程 git 存储库的凭据输入 Docker 文件也很棘手。我还建议 运行ning 源代码控制命令专门用于主机而不是 Docker 文件。
此处的标准方法是将 docker-compose.yml
文件提交到存储库的顶部,并直接从主机提交 运行 git clone
和 docker-compose up
。您不能将 Docker 文件用作通用自动化工具。