我刚刚开始使用Docker。我能够运行我的服务器,并在它们之间进行通信。
我不明白的是:为什么我需要从Docker Quickstart Terminal打开的窗口运行Docker命令,例如$ docker run somerepo/image
。从“常规”终端窗口运行它会返回$ docker run dockerinaction/hello_world
docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?. See 'docker run --help'.
据我所知,在OS X和Windows上,Docker需要使用Linux 2.6(在我的情况下)启动一个虚拟机,并且所有容器都在该VM中运行。
我虽然docker CLI连接到在该VM内部运行的docker守护程序 - 然后我不明白Quickstart终端中发生了什么。
答案 0 :(得分:4)
我不明白快速启动终端会发生什么。
您可以使用docker-machine env
提供的常规终端,并执行与osx/mpkg/quickstart.app/Contents/Resources/Scripts/start.sh
类似的操作:
dockerm-machine start dev
eval "$(docker-machine env dev)"
(将#39; dev
'替换为泊坞机的名称。默认情况下,它被命名为..." default
&#34;)< / p>
一旦设置了Docker客户端的环境变量,就可以直接从shell执行docker命令 快速入门终端会为您设置相同的变量。
答案 1 :(得分:2)
通过观看终端输出,您可以看到它的作用。在我的情况下,它运行 bash --login'/ Applications / Docker / Docker Quickstart Terminal.app/Contents/Resources/Scripts/start.sh'尝试启动虚拟机。一旦它运行,它使用等效的 eval“$(docker-machine env default)”来设置一些环境变量,以便终端准备好访问Docker VM。
如果您需要更多信息,请查看该脚本start.sh。
答案 2 :(得分:0)
docker quickstart 终端有什么作用?
来自Docker docs:
<块引用>它将创建并启动一个运行 Docker Engine 的 VirtualBox VM,然后 配置命令行环境,以便您可以与之对话
换句话说,它设置了一些环境变量,以便您的终端准备好访问 Docker 虚拟机。 -(感谢@Nauraushaun)