我是Docker的新手。从名为Packt Publishing的《学习Docker 18.x的基础知识》一书中学习。在“ Docker卷”一章中,作者使用docker-machine创建一个虚拟机,然后创建一个名为my-data的卷。我已经在第一个终端窗口中执行了以下命令:
然后,作者使用-v命令创建一个安装该卷的容器。我已经在第二个终端窗口中执行了以下命令):
当我尝试在第一个终端窗口中重新列出该卷中的文件时,我什么也没得到。
所以我的理解是
我还注意到,docker卷检查我的数据提供了不同的挂载点:
通过这种方式,我知道它们的体积不同,对吗?
但是我没有在卷中看到任何数据。我的理解正确吗?有人可以向我解释docker中的卷如何工作吗?
我还想知道如何从Mac终端导航到此位置?
谢谢。
答案 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主机上的目录中。将卷装入容器时,该目录就是装入容器的目录。