"Docker Toolbox"、"docker-machine"和"Docker Container"之间有什么关系

What's the relationship among "Docker Toolbox", "docker-machine" and "Docker Container"

我对docker完全陌生,最近我跟着James的"The Docker Book"学习了docker。我使用的 OS 是 OSX。我用于 运行 docker 的工具是 Docker Desktop for Mac(顺便说一句,我使用的是 docker-工具箱吗?)。

当我按照书到运行以下代码时:

$ sudo  docker run --log-driver="syslog" --name daemon_dwayne -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"

终端returns:

docker: Error response from daemon: failed to initialize logging driver: Unix syslog delivery error.

所以我尝试使用docker-machine ssh连接到Docker Toolbox VM,但是终端returns:

Error: No machine name(s) specified and no "default" machine exists

之后我下载了 Boot2Docker iso 文件并成功创建了一个名为 "dev".

的 docker-machine

所以我认为澄清这些概念会有所帮助:

我认为 "Docker toolbox" 是一个软件 运行ning on Mac/PC,它包含一个 Linux 虚拟机。这样我们就可以在该 VM 上创建 "Docker containers"。

但是什么是"docker-machine"?我的 OS 上的 "docker-machine" 和 "Linux VM" 运行ning 有什么关系?

谁能帮我解决这些概念?

Docker Toolbox,(简称DT)是现在被[=取代的Docker包(或"software") 44=] Desktop (DD)(对于 Win 或 Mac)。您不需要(或者可能根本不应该,DT 与 DD 同时安装。它可能会或可能不会导致冲突,我不确定。)。

DT 通过 VirtualBox 在安装时创建默认 VM;如果您没有完整安装 DT,那就是您没有 'default machine' 的原因。 Boot2docker.iso 也是 DT 的一部分,但不是 DD。

docker container 只是 docker 中的一个命令,用于管理您的容器。 "docker" 是可执行程序本身,而 "container" 是它的参数之一。做一个 docker container --help 了解更多详情。

docker-machine是作为DT一部分的可执行程序;但不是DD的一部分。删除旧 DT 后,您不再需要使用任何 docker-machine 调用,因为这些调用现在都可以通过 DD 中的不同命令使用。

关于您的错误,请查看:

https://docs.docker.com/config/containers/logging/configure/

在这种情况下,如果您只是想执行一些简单的命令,您可能还想 docker exec 试试看:

https://docs.docker.com/engine/reference/commandline/exec/

我知道一开始要吸收很多东西,而且很困惑;我自己大约一年半,记得同样的困惑,但一旦你掌握了它,它就很容易,而且非常酷。 =)