了解docker -v命令

我刚刚通过YouTube上的这个教程,并尝试unrstand -v命令的使用,IE为什么教程中使用-v命令的人? 他这样使用命令,

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

现在我明白上面的命令在某种程度上IE

 --name=my_datastore 

给容器一个特定的名字。

 -d busybox 

上面的命令searchbusybox图像,如果没有find将从dockerhub拉出来,并作为守护进程在后台运行。

运行命令执行后,下面一行回显到控制台。

 echo "my datastore" 

现在我不明白的部分是:

 -v /var/lib/mysql 

为什么这里使用-v命令,为什么path/var/lib/mysql指定? 我很难理解为什么使用上面的线,在什么情况下? 有人可以解释吗?

--volume-v (或--volume )参数用于在与容器文件系统的其余部分分离的容器内创build存储空间。 有两种forms的命令。

当给定一个参数,如-v /var/lib/mysql ,这将从Docker分配空间,并将其安装在给定位置。 这主要是从Docker中分配存储的一种方式,与您的服务容器不同。 例如,您可能需要运行一个更新版本的数据库应用程序,这涉及到拆除现有的MySQL容器并启动一个新的容器。 你希望你的数据在这个过程中生存下来,所以你把它存储在一个可以被tour数据库容器访问的卷中。

当给出两个参数( host_path:container_path )时,例如-v /data/mysql:/var/lib/mysql ,它会在指定path的容器内的主机上安装指定的目录(为了准确,也可以用来显示容器内的主机文件 ;例如-v /etc/localtime:/etc/localtime会使主机上的/etc/localtime在容器内成为/etc/localtime 。 这是向您的容器提供信息的一种方式,或为您的容器提供一种让主机可访问的文件的方式。

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

 docker run --volumes-from my_datastore ... 

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

这在“ pipe理容器文档中的数据”中进行了更详细的讨论。