Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';“这是”之间的关系;“Docker工具箱”&引用;“docker机器”;及;“码头集装箱”;_Docker_Docker Machine_Docker Toolbox_Docker For Mac - Fatal编程技术网

什么';“这是”之间的关系;“Docker工具箱”&引用;“docker机器”;及;“码头集装箱”;

什么';“这是”之间的关系;“Docker工具箱”&引用;“docker机器”;及;“码头集装箱”;,docker,docker-machine,docker-toolbox,docker-for-mac,Docker,Docker Machine,Docker Toolbox,Docker For Mac,我对docker完全陌生,最近我跟随James的《docker书》自学了docker。我使用的操作系统是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 worl

我对docker完全陌生,最近我跟随James的《docker书》自学了docker。我使用的操作系统是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"
终端返回:

docker:来自守护进程的错误响应:未能初始化日志驱动程序:Unix系统日志传递错误

因此,我尝试使用
docker machine ssh
连接到docker Toolbox VM,但终端返回:

错误:未指定计算机名,并且不存在“默认”计算机

之后,我下载了Boot2Docker iso文件,并成功创建了一个名为“dev”的docker机器

  • 因此,第一个问题是:*是否已经存在内部 在我创建“dev”之前的docker机器
  • 如果不是,为什么我可以在创建dev之前运行ubuntu docker容器
因此,我认为澄清这些概念会有所帮助:

  • “Docker工具箱”
  • “docker机器”
  • “Docker容器”
我认为“Docker工具箱”是一个运行在Mac/PC上的软件,它包含一个Linux虚拟机。这样我们就可以在虚拟机上创建“Docker容器”

但是什么是“docker机器”?“docker机器”和在我的操作系统上运行的“Linux虚拟机”之间有什么关系?

有人能帮我介绍一下这些概念吗?

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容器--help
以了解更多详细信息

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

关于您的错误,请查看:

在这种情况下,如果您只是想发出一些简单的命令,您也可以尝试一下
docker exec


我知道一开始要吸收的东西很多,而且令人困惑;我自己大约有一年半的时间了,还记得同样的困惑,但一旦你掌握了窍门,就很容易了,而且很酷

谢谢你的帮助。我检查了几个文档,发现最新的“Docker for Mac”使用HyperKit而不是虚拟机来构建虚拟机。“是吗?”也许,我从来没有看过;我一直在Windows中使用它,