Docker 快速启动终端有什么作用?

What does Docker Quickstart Terminal do?

我最近才开始使用 Docker。我可以 运行 我的服务器,并在它们之间进行通信。

我不明白的是:为什么我需要 运行 Docker 命令,例如 Docker 打开的 window 中的 $ docker run somerepo/image快速启动终端。

运行 它来自“常规”终端 windows returns

$ 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 正在连接到一个 docker 守护进程,它 运行 位于该 VM 中 - 然后我不明白快速启动终端中发生了什么。

I don't understand what does happen in the Quickstart Terminal.

您可以使用 docker-machine env, and do operations similar to osx/mpkg/quickstart.app/Contents/Resources/Scripts/start.sh 提供的常规终端:

dockerm-machine start dev
eval "$(docker-machine env dev)"

(将“dev”替换为您的 docker 机器的名称。默认情况下,它被命名为...“default”)

设置 Docker 客户端的环境变量后,您可以直接从 shell.
执行 docker 命令 快速启动终端将为您设置相同的变量。

您可以通过观察终端输出来了解它的作用。在我的例子中,它 运行 bash --login '/Applications/Docker/Docker Quickstart Terminal.app/Contents/Resources/Scripts/start.sh' 试图启动虚拟机.一旦它是 运行,它就使用等效于 eval "$(docker-machine env default)" 来设置一些环境变量,以便您的终端准备好访问 Docker 虚拟机。

如果您需要更多信息,请查看该脚本 start.sh。

docker 快速启动终端有什么作用?

来自Docker docs

It will create and start a VirtualBox VM running Docker Engine, then configure the command-line environment so that you can talk to it

换句话说,它设置了一些环境变量,因此您的终端已准备好访问 Docker 虚拟机。 -(感谢@Nauraushaun)