首页 文章

无法连接到macOS上的Docker守护程序

提问于
浏览
88

我通常更喜欢使用brew在我的OSX上管理我的应用程序

我能够安装docker,docker-compose和docker-machine

docker --version
Docker version 17.05.0-ce, build 89658be
docker-compose --version
docker-compose version 1.13.0, build unknown
docker-machine --version
docker-machine version 0.11.0, build 5b27455

我没有下载并运行'Docker for Mac'应用程序 .

但是,当我试图跑

> docker run -d -p 80:80 --name webserver nginx
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.

我已经检查了sock文件

ls -lah /var/run/docker.sock /var/tmp/docker.sock
ls: /var/run/docker.sock: No such file or directory
ls: /var/tmp/docker.sock: No such file or directory

我也试过这个提议的解决方案:Mac OS X sudo docker Cannot connect to the Docker daemon. Is the docker daemon running on this host?

但我收到此错误消息:

$ eval $(docker-machine env default)
Host does not exist: "default"

是否可以通过命令行工具运行docker服务?

9 回答

  • 3
    brew cask install docker
    

    然后启动 Docker 应用程序 . 点击下一步 . 它将要求特权访问 . 确认 . 鲸鱼图标应出现在顶部栏中 . 单击它并等待"Docker is running"出现 .

    您现在应该能够运行 docker 命令 .

    docker ps
    
  • 3

    在macOS上,docker二进制文件只是一个客户端,你不能用它来运行docker守护进程,因为Docker守护进程使用特定于Linux的内核功能,因此你不能在OS X中本机运行Docker . 所以你必须按顺序安装 docker-machine 创建VM并附加到它 .

    在macOS上安装docker-machine

    如果您还没有docker-machine命令,请使用以下方法之一安装它:

    • 使用Brew命令: brew install docker-machine docker .
      手动
    install -v <(curl https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) /usr/local/bin/docker-machine
    

    见:Get started with Docker for Mac .

    在macOS上配置docker-machine

    创建 default 机器(如果没有,请参阅: docker-machine ls ):

    docker-machine create --driver virtualbox default
    

    然后为Docker客户端设置环境:

    eval "$(docker-machine env default)"
    

    然后通过列出容器仔细检查:

    docker ps
    

    见:Get started with Docker Machine and a local VM .


    有关:

  • 183

    我有同样的问题,我通过以下步骤解决了这个问题:

    docker-machine restart
    

    Quit terminal (or iTerm2, etc, etc) and restart

    eval $(docker-machine env default)
    

    我也回答了它here

  • 21

    试试这个来创建默认值 .

    docker-machine create default
    
  • 23

    在OSX上确保您在发布之前已经启动了Docker应用程序

    docker ps
    

    或者 docker build ...等等......是的,这似乎有点奇怪,有些误导

    docker --version
    

    即使docker守护程序没有运行也给出了版本...同样适用于那些其他版本的cmd ...我只是遇到了完全相同的症状

  • 0

    我有最新的码头 Worker ,码头 Worker 说它正在运行,诊断结果很好 . 我需要取消设置一些遗留环境变量(谢谢https://docs.docker.com/docker-for-mac/troubleshoot/#workarounds-for-common-problems

    unset DOCKER_HOST
    unset DOCKER_CERT_PATH
    unset DOCKER_TLS_VERIFY
    
  • 2

    因为使用MacOS进程管理本质上是困难的(与传统的* nix OS不同,比如SystemD和init)你需要一个cask应用程序来启动并在后台运行以允许守护进程运行(并且具有简单的管理访问权限) .

    brew install 只安装CLI实用程序 brew cask install 适用于GUI实用程序 . 因此,在安装docker时,必须执行BOTH安装以获取守护程序GUI实用程序和CLI实用程序 . 我希望这能澄清那些对Brew没有默认安装的人感到不安!

  • 1

    我有同样的问题 . Docker正在运行但无法通过CLI访问它 .

    对我来说,执行“Docker Quickstart Terminal.app”解决了这个问题 . 它位于“/ Applications / Docker /”文件夹中 . 只要我在终端应用程序的这个实例中工作Docker就能完美运行 . 如果需要第二个窗口,我必须再次运行“Quickstart”应用程序 .

    我有一个Docker for Mac安装 . 因此,我不确定我的解决方案是否适用于Homebrew安装 .

    “Docker Quickstart终端”应用程序似乎基本上是一些用于启动终端应用程序的应用程序和一个初始化所有必要环境变量的bash启动脚本 .

    希望这有助于其他人!

  • 8

    我首先通过自制软件尝试了docker和docker-compose,但是这里列出了问题 . 我必须从https://docs.docker.com/docker-for-mac/install/安装docker的官方安装,然后一切都按预期工作 .

相关问题