Ant*_*ong 160 macos docker macos-sierra
我通常更喜欢使用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
Run Code Online (Sandbox Code Playgroud)
我没有下载并运行'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'.
Run Code Online (Sandbox Code Playgroud)
我已经检查了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
Run Code Online (Sandbox Code Playgroud)
我也试过这个提出的解决方案:Mac OS X sudo docker无法连接到Docker守护进程.docker守护程序是否在此主机上运行?
但我收到此错误消息:
$ eval $(docker-machine env default)
Host does not exist: "default"
Run Code Online (Sandbox Code Playgroud)
是否可以通过命令行工具运行docker服务?
fri*_*mle 348
brew cask install docker
Run Code Online (Sandbox Code Playgroud)
然后启动Docker应用程序.点击下一步.它将要求特权访问.确认.鲸鱼图标应出现在顶部栏中.单击它并等待"Docker正在运行"出现.
您docker现在应该能够运行命令.
docker ps
Run Code Online (Sandbox Code Playgroud)
efr*_*iis 122
如果你像我一样在 Docker Desktop 4.13.0 之后出现在这里,那是因为 Docker/var/run/docker.sock在默认行为中摆脱了符号链接!请参阅此处的发行说明。
快速修复:复制下面“永久解决方案”下的命令
我正在经历docker ps(和其他 docker 客户端命令)工作,但与 docker 交互的其他库(例如 supabase CLI)导致:
$ supabase start
Error: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Run Code Online (Sandbox Code Playgroud)
现在,您必须手动执行一些操作,以便让您的工具找到真正的docker 套接字文件,默认情况下位于~/Library/Containers/com.docker.docker/Data/docker.raw.sock.
这是“撤消”此临时修复的永久解决方案。
sudo ln -s ~/Library/Containers/com.docker.docker/Data/docker.raw.sock /var/run/docker.sock
DOCKER_HOST=unix:///var/run/docker.sock docker ps # test that it works using linked socket file
Run Code Online (Sandbox Code Playgroud)
这将暂时让您的命令使用新的套接字文件
DOCKER_HOST=unix:///Users/$USER/Library/Containers/com.docker.docker/Data/docker.raw.sock docker ps
Run Code Online (Sandbox Code Playgroud)
(替换docker ps为您想要的任何命令,例如supabase start)
您还可以使其在当前的终端会话中工作,或者粘贴到您的.zshrc永久会话中,方法是:
export DOCKER_HOST=unix:///Users/$USER/Library/Containers/com.docker.docker/Data/docker.raw.sock
Run Code Online (Sandbox Code Playgroud)
ken*_*orb 76
在macOS上,docker二进制文件只是一个客户端,你不能使用它来运行docker守护进程,因为Docker守护进程使用特定于Linux的内核功能,因此你无法在OS X中本机运行Docker.所以你必须安装docker-machine才能创建VM并附加到它.
docker-machine在macOS上安装如果还没有docker-machine命令,请使用以下方法之一安装它:
brew install docker-machine docker.手动:
$ curl -L https://github.com/docker/machine/releases/download/v0.16.1/docker-machine-`uname -s`-`uname -m` >/usr/local/bin/docker-machine
$ chmod +x /usr/local/bin/docker-machine
Run Code Online (Sandbox Code Playgroud)请参阅:Docker for Mac入门.
docker-machine在macOS上配置创建一brew cask install virtualbox台机器(如果没有,请参阅:)Error: VBoxNetAdpCtl: Error while adding new interface:
docker-machine create --driver virtualbox default
Run Code Online (Sandbox Code Playgroud)
然后为Docker客户端设置环境:
eval "$(docker-machine env default)"
Run Code Online (Sandbox Code Playgroud)
然后通过列出容器仔细检查:
docker ps
Run Code Online (Sandbox Code Playgroud)
有关:
Don*_*ghn 56
docker-machine 项目现已正式停止。
我发现Colima是一个很好的替代品,您可以通过简单的步骤轻松连接 docker 守护进程:
brew install docker docker-compose colima
# make coffee
colima start
Run Code Online (Sandbox Code Playgroud)
准备码头:
docker run hello-world
Run Code Online (Sandbox Code Playgroud)
小智 28
我有同样的问题,我通过以下步骤解决了这个问题:
docker-machine restart
Run Code Online (Sandbox Code Playgroud)
退出终端(或iTerm2等)并重启
eval $(docker-machine env default)
Run Code Online (Sandbox Code Playgroud)
我也在这里回答
Ati*_*sha 27
对我来说重新启动 docker 没有帮助。(通过终端和用户界面尝试过)
下面的选项没有被选中,所以我把它选中了。之后我就可以运行我的容器设置 -> 高级 -> 启用默认 Docker 套接字(需要密码)
注意 - 它将需要管理员凭据。
Lig*_*mer 10
安装 minikube 并加入黑暗面。
https://kubernetes.io/docs/tasks/tools/install-minikube/
$ bash --version
GNU bash, version 5.0.3(1)-release (x86_64-apple-darwin18.2.0)
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
Run Code Online (Sandbox Code Playgroud)
eval $(minikube docker-env)
$ docker run --rm -v ${PWD}:/local swaggerapi/swagger-codegen-cli generate -i /local/swagger.json -l python -o /local/test/
[main] INFO io.swagger.parser.Swagger20Parser - reading from /local/swagger.json
[main] WARN io.swagger.codegen.DefaultGenerator - 'host' not defined in the spec. Default to 'localhost'.
Run Code Online (Sandbox Code Playgroud)
在装有 bash v5 的 Macbook Pro 2018 上运行良好。在我看来,现在不需要安装所有其他 docker 废话了。根据我的经验,minikube 自带的虚拟机和安装脚本可以替代 docker machine。
hig*_*yte 10
为了扩展其他答案 - 在花了整个上午的时间来解决这个问题并且其他答案都没有帮助之后,最后我发现 docker 试图访问 docker.sock 的错误路径(!!),因为几个月前我安装了 colima。
运行这个帮助我切换回来:
docker context use default
小智 9
试试这个来创建默认值.
docker-machine create default
Run Code Online (Sandbox Code Playgroud)
我有Mac OS,然后打开Launchpad并选择docker应用程序。从reset选项卡上单击restart。
这对我来说很有效:
open --background -a Docker
Run Code Online (Sandbox Code Playgroud)
需要几秒钟才能连接到 docker。
我使用的是 Mac OS Big Sur。
这个问题:
\n$ brew install docker docker-machine\n$ docker ps\n\nCannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?\nRun Code Online (Sandbox Code Playgroud)\n这显然意味着执行以下操作:
\n$ docker-machine create default # default driver is apparently vbox:\nRunning pre-create checks...\nError with pre-create check: "VBoxManage not found. Make sure VirtualBox is installed and VBoxManage is in the path"\n$ brew cask install virtualbox\n\xe2\x80\xa6\n$ docker-machine create default \n# works this time\n$ docker ps\nCannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?\n$ eval "$(docker-machine env default)"\n$ docker ps\nCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES\nRun Code Online (Sandbox Code Playgroud)\n它终于起作用了。
\n如果您不想安装虚拟盒,则可以使用 \xe2\x80\x9cxhyve\xe2\x80\x9d 驱动程序。\n此外,您还可以安装 \xe2\x80\x9cdocker 应用程序\xe2\x80\ x9d (然后运行它)这显然使得你不必运行上面的一些内容。brew cask install docker然后运行应用程序,查看其他答案。但显然本身没有必要。
在OSX上确保在发布前已启动Docker应用程序
docker ps
Run Code Online (Sandbox Code Playgroud)
或docker build...等等...是的,这似乎很奇怪,并且在某种程度上误导了发行
docker --version
Run Code Online (Sandbox Code Playgroud)
即使docker daemon没有运行也给出版本...对于其他版本的cmds也是一样的...我只是遇到了完全相同的症状... OSX上的这种行为与Linux上的行为不同
我有同样的问题。Docker 正在运行,但无法通过 CLI 访问它。
对我来说,问题是通过执行“Docker Quickstart Terminal.app”解决的。它位于“/Applications/Docker/”文件夹中。只要我在终端应用程序的这个实例中工作,Docker 就能完美工作。如果需要第二个窗口,我必须再次运行“快速启动”应用程序。
我有一个适用于 Mac 的 Docker 安装。因此,我不确定我的解决方案对于 Homebrew 安装是否有效。
“Docker Quickstart Terminal”应用程序似乎本质上是一些启动终端应用程序的苹果脚本和一个初始化所有必要的环境变量的 bash 启动脚本。
希望这对其他人有帮助!
我有最新的 docker,docker 说它正在运行,而且诊断很好。我需要取消设置一些遗留环境变量(感谢https://docs.docker.com/docker-for-mac/troubleshoot/#workarounds-for-common-problems)
unset DOCKER_HOST
unset DOCKER_CERT_PATH
unset DOCKER_TLS_VERIFY
Run Code Online (Sandbox Code Playgroud)
Docker for Mac 已弃用。而且你不需要 Homebrew 在 Mac 上运行 Docker。相反,您可能想要安装 Docker Desktop,或者如果已经安装,请确保它是最新的并且正在运行,然后再次尝试连接到套接字。
| 归档时间: |
|
| 查看次数: |
88008 次 |
| 最近记录: |