“无法连接到Docker Daemon”

时间:2018-11-22 10:19:40

标签: docker

我有一个项目,我需要使用CircleCi来构建docker应用程序映像,然后将其上传到Amazon容器存储库。

鉴于CircleCI也可以在Docker上运行,我为此创建了一个Docker映像,该映像包含一个版本的Ubuntu,以及AWS CLI,Node和Docker。请参阅下面的Dockerfile:

FROM ubuntu:16.04

# update libraries
RUN apt-get update
RUN apt-get install -y apt-transport-https ca-certificates curl software-properties-common
RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
RUN add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# install docker
RUN apt-get update
RUN apt-cache policy docker-ce
RUN apt-get install -y docker-ce
                                   # <---
RUN systemctl status docker        # <--- TROUBLE HERE
                                   # <---
# install node
RUN curl -sL https://deb.nodesource.com/setup_8.x | bash -
RUN apt install -y nodejs 

# install aws cli
RUN apt-get install -y python-pip python-dev build-essential  
RUN pip install --upgrade pip
RUN pip install awscli --upgrade

我目前在使用此CircleCi docker映像时遇到一些问题,因为如果我保留命令RUN systemctl status docker,则会出现以下错误:

Failed to connect to bus: No such file or directory The command '/bin/sh -c systemctl status docker' returned a non-zero code: 1

另一方面,如果我删除该命令,则说明构建成功。但是,当我进入docker sudo docker run -it unad16并运行任何docker命令(例如docker images)时,出现以下错误:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

自昨天以来,我一直在尝试调试此错误,但未成功完成。因此,我们将不胜感激任何帮助。

注意:

  • 即使我使用sudo docker run -ti --privileged=true unad16在特权模式下运行docker,也会发生“守护程序”错误

1 个答案:

答案 0 :(得分:2)

如果要在circleci中构建docker映像,则无需运行docker守护进程。相反,您只需要带有docker client的图像和带有- setup_remote_docker的circle配置。

了解更多 https://circleci.com/docs/2.0/building-docker-images/

如果出于其他原因您仍想在docker映像中运行docker服务,请参阅DockerInDocker存储库,尤其是README.md部分。