在Mac上运行时出现“Docker命令未找到”的错误提示

78

我正在尝试按照 docker-graphite-statsd 的指示运行下面的代码:

docker run -d\
 --name graphite\
 --restart=always\
 -p 80:80\
 -p 2003-2004:2003-2004\
 -p 2023-2024:2023-2024\
 -p 8125:8125/udp\
 -p 8126:8126\
 graphiteapp/graphite-statsd

它会产生这个错误:

$ sudo docker run -d --name graphite --restart=always -p 80:80 -p 2003-2004:2003-2004 -p 2023-2024:2023-2024 -p 8125:8125/udp -p 8126:8126 graphiteapp/graphite-statsd
sudo: docker: command not found

这是在Mac上。我尝试了brew install docker,但没有任何改变。

我该如何解决这个问题?


请按照官方网站上的步骤进行操作:https://docs.docker.com/docker-for-mac/install/ - Shashank Sinha
2
运行 brew doctor 命令,它会帮助你检测安装中的错误。 - mat_vee
2
我从官方链接安装了适用于我的新M1的Docker,但终端找不到Docker命令。还有其他人遇到这个问题吗?https://docs.docker.com/docker-for-mac/install/,即使运行brew doctor也没有帮助。 - Charlie Parker
如果您在 Mac 上安装了 .dmg 包,请确保在运行 docker 命令之前,先打开 Docker 桌面应用程序并授予所需的特权和权限。 - M.Hossein Rahimi
在 Mac 上使用 Docker 真是让人头疼... - Arthur Khazbs
显示剩余2条评论
19个回答

146

很抱歉,您需要手动将docker命令添加到您的PATH中。这可以通过配置文件完成。由于在MacOS上,ZSH现在是默认Shell,所以应该将其添加到 ~/.zprofile 文件中:

# Add Visual Studio Code (code)
export PATH="$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin"
# Add Docker Desktop for Mac (docker)
export PATH="$PATH:/Applications/Docker.app/Contents/Resources/bin/"

5
这是唯一的解决方案。谢谢! - thodwris
3
请注意,最近版本的Docker将CLI安装在$HOME/.docker/bin中,并且这些只是指向/Applications/Docker.app/Contents/Resources/bin/中二进制文件的符号链接。 - Tom Harrison
1
请确保在~/zshrcbashrc中添加/Applications/Docker.app/Contents/Resources/bin/。我之前使用EXPORT命令添加了它,但那只会设置当前终端会话的PATH - CJG
这是在访问了10多个互联网链接后修复的解决方案。谢谢。 - abdoulsn
1
为什么这个答案还没有被视为被接受的答案?这个解决方案非常有效。 - undefined
然后运行"exec zsh"来激活更改。 - undefined

39

无法连接到 unix:///var/run/docker.sock 上的 Docker 守护程序。Docker 守护程序是否正在运行? - Peter Kionga-Kamau

22

可能有更好的解决方案,但这对我有效(macOS):

根据您使用的是哪个,编辑您的.zshrc.bashrc

vi ~/.zshrc # or ~/.bashrc

在我的情况下,.zshrc
# ~/.zshrc
...

alias docker="/Applications/Docker.app/Contents/Resources/bin/docker"

...

source ~/.zshrc

现在应该可以工作了

docker --version

这个方法可行是因为我们将docker的别名设置为位于/Applications/Docker.app/Contents/Resources/bin/docker的可执行文件。

1
不要使用别名,而是使用符号链接,这样脚本也可以找到它。例如:ln -s /Applications/Docker.app/Contents/Resources/bin/docker ~/bin/ - Laurence Gonsalves
3
从Docker Desktop版本4.18开始,默认的“CLI实用程序”安装路径是$HOME/.docker/bin,因此您必须使用export PATH=$PATH:$HOME/.docker/bin而不是使用/usr/local/bin/docker。 Docker进行了这个更改,因为将“CLI”安装到/usr/local/bin路径需要root权限。 - Martin Mares

11

8
我安装了链接中的内容(没有使用brew),但仍然找不到这个命令!? - Charlie Parker
2
对我来说,直到我运行Docker桌面应用程序之前,docker命令才变得可用。简单地按照.dmg的说明将Docker复制到应用程序文件夹中是不够的。换句话说,您必须实际运行Docker才能完成安装过程。 - Caleb Koch
1
@CalebKoch 我已经运行了 Docker Desktop 应用程序,但仍然找不到 docker 命令。 - Laurence Gonsalves
无法运行桌面应用程序,因为我实际上没有台式机。如何在 shell(ssh)中完成? - Peter Kionga-Kamau
我仍然无法像以前一样使其正常工作(只有在运行Docker桌面时才会出现docker CLI)。 我已经反复多次通过Homebrew cask和从Docker网站下载的dmg进行了卸载和重新安装。 我所能想到的是,某些东西没有被清理干净,以至于重新安装需要启用CLI作为应用程序启动的一部分。 作为解决方法,我只是执行了 echo PATH="$PATH:$HOME/.docker/bin",现在我可以运行docker命令。 我想如果Docker桌面没有运行,它们将会失败。 - Jasman

10

export PATH="$PATH:/Applications/Docker.app/Contents/Resources/bin/"

这是我唯一可行的解决方案。

尝试过 export PATH="$PATH:$HOME/.docker/bin",但失败了,尽管它是指向实际位置的符号链接,并且我可以在终端中从中运行 docker。


笔记本电脑操作系统为Mac 13.3.0。 - Lycheek1ng

7
这个命令对我很有帮助:
/Applications/Docker.app/Contents/Resources/bin/docker --version

然后检查版本:

docker --version

ec2-user@ip-xxx-xxx-xxx-xxx ~ % docker --version 返回 Docker版本20.10.23,构建7155243 但我仍然无法运行任何东西 docker run hello-worlddocker ps 只会出现 无法连接到unix:///var/run/docker.sock的Docker守护程序。 Docker守护程序正在运行吗? - Peter Kionga-Kamau

7

截至docker desktop mac(在我的情况下为v4.18,Apple Silicon版本),默认安装位置已更改为:

  • 不再是/usr/local/bin
  • 现在是$HOME/.docker/bin

请参阅Docker Desktop > Settings > Advanced,其中提供了两个选项:

  • 系统,以及
  • 用户,默认为用户

对于系统而言,位置位于默认的macOS路径中。对于用户而言,您需要将其添加到您的路径中。

系统:(需要密码)Docker CLI工具安装在/usr/local/bin下。

用户:Docker CLI工具安装在$HOME/.docker/bin下。注意:您需要手动将$HOME/.docker/bin添加到您的PATH中。


7
默认情况下,Docker CLI工具被安装在$HOME/.docker/bin目录下。您需要手动将$HOME/.docker/bin添加到您的PATH环境变量中。
您可以通过转到“Docker -> 设置 -> 高级 -> 从用户更改为系统”来更改这个设置。选择系统后,Docker CLI工具将被安装在/usr/local/bin目录下。
这是一种持久的方法,您将不必再进行导出操作。
如果您不想更改设置,在将使用docker的终端中导出此命令即可。
export PATH="$PATH:/Applications/Docker.app/Contents/Resources/bin/"

每次Docker有新的更新时,你需要运行这段代码来重新将其添加到我的Mac路径中。 - Emil

5
如果您已经成功安装了官方的Docker软件包,该命令应该可以在/usr/local/bin/docker下找到。
该目录可能还没有添加到$PATH中,您可以尝试添加它,运行以下命令:
export PATH="/usr/local/bin:$PATH"

这将/usr/local/bin添加到您的PATH的最前面。

来源:https://dev59.com/u7Xna4cB1Zd3GeqPJVq1#57231241


详细信息:

检查 Docker 是否不存在:

docker
zsh: command not found: docker

检查PATH环境变量:

echo $PATH
/Users/brandomiranda/.opam/__coq-platform.2022.01.0~8.15~beta1/bin:/Users/brandomiranda/opt/anaconda3/envs/meta_learning/bin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin

然后添加路径(为了在当前 shell 和从当前 shell 启动的所有进程中设置它,请使用 export):

export PATH="/usr/local/bin:$PATH"

请检查我添加到Path中的内容:

echo $PATH
/usr/local/bin:/Users/brandomiranda/.opam/__coq-platform.2022.01.0~8.15~beta1/bin:/Users/brandomiranda/opt/anaconda3/envs/meta_learning/bin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin

看起来我的路径中没有/usr/local/bin。这很奇怪?对我来说很奇怪...为什么它不在那里呢?


1
不是的。我安装并运行了Docker桌面版,但根本没有/usr/local/bin。事实上,sudo find /usr -name docker什么也找不到! - Laurence Gonsalves
截至2023年11月,从官方网站https://docs.docker.com/desktop/install/mac-install/安装的Docker并不位于/usr/local/bin/docker目录下!我找不到我的Docker命令在哪里。 - undefined

5

Homebrew的Docker在10.13上不再安装/usr/local/bin/docker或/Applications/Docker.app。

你需要从上述docker.com网站下载Docker Desktop for Mac应用程序并进行安装。


3
我从链接/官网安装了软件(没有使用brew),但仍然找不到命令!? - Charlie Parker
这不再是真的了。实际上 ´´´brew install --cask docker´´´ 会将 Docker 安装到 /usr/local/bin/docker 并在 /Applications 中创建一个 Docker 应用程序。 - pythonInRelay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接