【发布时间】:2021-02-05 10:45:35
【问题描述】:
我正在使用 Docker,由于我的 Catalina 系统不支持虚拟化,我正在使用 docker-machine 和 VirtualBox。
我按照https://docs.docker.com/machine/install-machine/ 的安装指南进行操作,并指出我可以使用docker-machine create --driver virtualbox default 命令创建一台新机器,并在使用docker-machine ls 链接机器时出现。
那么
要查看如何将 Docker 客户端连接到此虚拟机上运行的 Docker 引擎,请运行:docker-machine env default
所以我运行它,命令是
运行这个命令来配置你的 shell: eval $(docker-machine env default)
也运行它,以便 Docker 的文档继续我应该能够运行 Docker 命令,如建议的 docker run busybox echo hello world 但我收到 zsh: command not found: docker 错误消息。
我按照 Docker 文档使用的确切步骤是:
0 Install Docker Desktop
1 enable writing on the /usr/local/bin folder for user
sudo chown -R $(whoami) /usr/local/bin
2 install Docker-Machine
base=https://github.com/docker/machine/releases/download/v0.16.0 &&
curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/usr/local/bin/docker-machine &&
chmod +x /usr/local/bin/docker-machine
3 install Xcode CLi..manually from dev account
4 Install Home Brew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
5 Install wget ( Using Brew)
brew install wget
6 Install bash completion scripts
base=https://raw.githubusercontent.com/docker/machine/v0.16.0
for i in docker-machine-prompt.bash docker-machine-wrapper.bash docker-machine.bash
do
sudo wget "$base/contrib/completion/bash/${i}" -P /etc/bash_completion.d
done
7 enable the docker-machine shell promp
1: vim ~/.bashrc
2: i
3: Pasted this:
PS1='[\u@\h \W$(__docker_machine_ps1)]\$ '
4: press esc
5: press :
6: type wq! and press enter
Install VirtualBox, ExtensionPack and SDK
https://www.virtualbox.org/wiki/Downloads
Done!
我认为问题在于我在 .bashrc 文件中添加了 PS1='[\u@\h \W$(__docker_machine_ps1)]\$ ' 而不是 .zshrc,因为我在 Catalina 上,所以我更正了它并退出了终端。重新打开它,现在终端显示[\u@\h \W$(__docker_machine_ps1)]\$ 而不是vinnytwice@Vinnys-iMac ~ %(这看起来对吗?)。
我重新运行docker-machine ls 并正确列出了先前创建的虚拟机,因此我再次使用eval $(docker-machine env default) 将shell 连接到它,但是在运行docker 命令时docker run busybox echo hello world 仍然相同zsh: command not found: docker 错误..
你能看到为什么不运行 docker 命令吗?
一如既往的感谢
【问题讨论】:
标签: docker shell docker-machine