了解 docker -v 命令

Understanding docker -v command

我刚刚在 Youtube 上浏览 this tutorial,试图了解 -v 命令的用法。

为什么作者使用-v命令?他使用命令,像这样:

docker run -v /var/lib/mysql --name=my_datastore -d busybox echo "my datastore"

现在我在一定程度上理解了上面的命令:

命令执行后,以下行将回显到控制台。

my datastore 

现在,我不明白的部分如下:

-v /var/lib/mysql

这里为什么用-v命令,为什么指定路径/var/lib/mysql

我很难理解为什么使用上述行以及在什么情况下使用。有人可以解释吗?

docker run-v(或 --volume)参数用于在与容器文件系统的其余部分分开的容器内创建存储 space。命令有两种形式。

当给定单个参数时,如 -v /var/lib/mysql,这将从 Docker 分配 space 并将其安装在给定位置。这主要是一种从 Docker 分配存储的方式,即与您的服务容器 distinct 。例如,您可能想要 运行 更新版本的数据库应用程序,这涉及拆除现有的 MySQL 容器并启动一个新容器。您希望您的 数据 在此过程中存活下来,因此您将其存储在一个可以被您的数据库容器访问的卷中。

当给定两个参数 (host_path:container_path) 时,如 -v /data/mysql:/var/lib/mysql,这会在指定路径的容器内的主机上挂载指定目录(并且,准确地说,这也可以是用于在容器内公开主机 files;例如 -v /etc/localtime:/etc/localtime 会使主机上的 /etc/localtime 在容器内作为 /etc/localtime 可用)。这是一种将信息馈送到容器中的方法,或者为容器提供一种使主机可以访问文件的方法。

如果容器有可用的卷,通过使用 -v 命令行参数或通过 Docker 文件中的 VOLUME 指令,这些卷可以从使用 --volumes-from 选项的另一个容器:

docker run --volumes-from my_datastore ...

这将使源容器中定义的任何卷在您开始使用的容器中可用 --volumes-from

这在 Docker Volumes 文档中有更详细的讨论。