Docker Quickstart Terminal是什么?

9

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

我不明白的是:为什么我需要从Docker Quickstart终端打开的窗口运行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的虚拟机,并且所有的容器都在这个虚拟机中运行。
我认为docker CLI连接到在那个虚拟机内部运行的docker deamon,但是我不理解快速入门终端中发生了什么。

我的猜测是终端只是设置了运行Docker所需的环境变量和路径。如果你仔细查找,可能会找到初始化脚本,并在当前终端中引用它以使一切正常工作。 - Doon
也许是因为你的用户不在docker组中?您可以通过在常规终端中输入“groups”来找出它。更多信息可以在这里找到:http://askubuntu.com/questions/477551/how-can-i-use-docker-without-sudo - Stas Makarov
3个回答

5

我不明白快速入门终端中发生了什么。

您可以使用docker-machine env提供的常规终端,并执行类似于osx/mpkg/quickstart.app/Contents/Resources/Scripts/start.sh的操作:

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

将“dev”替换为您的Docker虚拟机名称。默认情况下,它的名称是“default”。

一旦设置了Docker客户端的环境变量,您就可以直接从Shell执行docker命令。
快速入门终端会为您设置同样的变量。


3
你可以通过观察终端输出来了解它的作用。在我的情况下,它运行了bash --login '/Applications/Docker/Docker Quickstart Terminal.app/Contents/Resources/Scripts/start.sh'来尝试启动虚拟机。一旦它运行起来,它会使用相当于eval "$(docker-machine env default)"的内容去设置一些环境变量,这样你的终端就准备好访问Docker VM了。
如果你需要更多信息,请查看那个 start.sh 脚本。

0

Docker快速入门终端是做什么的?

根据Docker文档:

它将创建和启动运行Docker Engine的VirtualBox VM,然后配置命令行环境,以便您可以与其通信

换句话说,它设置一些环境变量,使您的终端准备好访问Docker VM。-(感谢@Nauraushaun)


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