我对docker完全陌生,最近我跟随James撰写的《 Docker书》,亲自了解docker。我正在使用的OS是OSX。我用来运行docker的工具是Mac的Docker Desktop(顺便说一句,我使用的是docker-toolbox吗?)。
当我遵循本书以运行以下代码时:
$ sudo docker run --log-driver="syslog" --name daemon_dwayne -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
终端返回:
docker:来自守护程序的错误响应:无法初始化日志记录驱动程序:Unix syslog传递错误。
所以我尝试使用docker-machine ssh
连接到Docker Toolbox VM,但是终端返回:
错误:未指定计算机名称,并且不存在“默认”计算机
[之后,我下载了Boot2Docker iso文件并成功创建了一个名为“ dev”的docker-machine。
所以我认为澄清这些概念会有所帮助:
我以为“ Docker工具箱”是在Mac / PC上运行的包含Linux VM的软件。这样我们就可以在该VM上创建“ Docker容器”。
但是什么是“ docker-machine”? “ docker-machine”和运行在我的OS上的“ Linux VM”之间是什么关系?
有人能帮我解决这些概念吗?
Docker Toolbox,(简称DT)是Docker软件包(或“软件”),现已被Docker Desktop(DD)(对于Win或Mac)取代。您不需要(也许根本不需要,与DD同时安装DT。我不确定,它可能会或可能不会引起冲突。)。
DT在安装时通过VirtualBox创建默认VM;如果您没有完整安装DT,这就是为什么您没有“默认计算机”的原因。 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/
我知道一开始要吸收很多东西,而且令人困惑;我自己大约有一年半的时间,还记得同样的困惑,但是一旦掌握了它,这将非常容易,而且非常酷。 =)