放入由docker

时间:2018-08-05 09:41:35

标签: docker

我是Docker的新手。从名为Packt Publishing的《学习Docker 18.x的基础知识》一书中学习。在“ Docker卷”一章中,作者使用docker-machine创建一个虚拟机,然后创建一个名为my-data的卷。我已经在第一个终端窗口中执行了以下命令:

ssh into default docker-machine and create my-data volume and cd into it by elevating myself to sudo

然后,作者使用-v命令创建一个安装该卷的容器。我已经在第二个终端窗口中执行了以下命令):

Volume Mounted and created a data.txt file

当我尝试在第一个终端窗口中重新列出该卷中的文件时,我什么也没得到。

所以我的理解是

  1. 在docker中创建卷。
  2. 将体积装入容器中。
  3. 创建一些数据。
  4. 退出容器。数据就会出现。

我还注意到,docker卷检查我的数据提供了不同的挂载点:

Mount point in first terminal window Mount point in second terminal window

通过这种方式,我知道它们的体积不同,对吗?

但是我没有在卷中看到任何数据。我的理解正确吗?有人可以向我解释docker中的卷如何工作吗?

我还想知道如何从Mac终端导航到此位置?

谢谢。

1 个答案:

答案 0 :(得分:0)

您正在运行docker-machine,它实际上是在安装了docker守护程序的主机上创建虚拟机。在其中运行docker volume create时,它将在vm 中创建卷。我怀疑您可能正在docker-machine外部运行docker命令,但是您已经在docker-machine内创建了卷,这就是为什么它们似乎是不同的卷的原因。

理想情况下,您希望配置主机以在执行任何docker命令时与docker-machine对话。来自docs

 $ docker-machine env default
 export DOCKER_TLS_VERIFY="1"
 export DOCKER_HOST="tcp://172.16.62.130:2376"
 export DOCKER_CERT_PATH="/Users/<yourusername>/.docker/machine/machines/default"
 export DOCKER_MACHINE_NAME="default"
 # Run this command to configure your shell:
 # eval "$(docker-machine env default)"

否则,您对docker卷的理解是正确的。 Docker卷由Docker创建和管理-这意味着它们的物理位置可以在Docker主机中更改。但是卷中的数据将始终保留,直到您将其删除。根据{{​​3}}:

  

创建卷时,它存储在Docker主机上的目录中。将卷装入容器时,该目录就是装入容器的目录。