了解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理容器文档中的数据”中进行了更详细的讨论。