Has*_*war 5 docker docker-volume
docker volume 命令-v和--volumes-from. 在我看来,他们正在做同样的工作,请考虑以下场景。
首先让我们创建一个myvol使用命令命名的卷:
$ docker volume create myvol
Run Code Online (Sandbox Code Playgroud)
现在创建并运行一个名为c1使用myvol并进入他的 bash的容器:
$ docker run -it --name c1 -v myvol:/data nginx bash
Run Code Online (Sandbox Code Playgroud)
让我们test.txt在容器的挂载目录中创建一个文件:
root@766f90ebcf37:/# touch /data/test.txt
root@766f90ebcf37:/# ls /data
test.txt
Run Code Online (Sandbox Code Playgroud)
-volume标志:现在创建另一个名为的容器c2也使用myvol:
$ docker run -it --name c2 -v myvol:/data nginx bash
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,新生成的容器c2也可以访问myvol
root@393418742e2c:/# ls /data
test.txt
Run Code Online (Sandbox Code Playgroud)
--volumes-from创建使用容器c3中的卷命名的容器c1
$ docker run -it --name c3 --volumes-from c1 nginx bash
Run Code Online (Sandbox Code Playgroud)
这将导致同样的事情c3:
root@27eacbe25f92:/# ls /data
test.txt
Run Code Online (Sandbox Code Playgroud)
关键是如果-v并且--volumes-from正在以相同的方式工作,即在容器之间共享数据,那么为什么它们是不同的标志,哪些--volumes-from可以做哪些-v不能做?
关键是 -v 和 --volumes-from 是否以相同的方式工作,即在容器之间共享数据
-v并--volumes-from以不同的方式工作,但是使用它们您可以在容器之间共享数据。
什么 --volumes-from 可以做而 -v 不能做的事情?
例如,它可以连接到另一个容器卷,而无需知道卷如何命名并且您不指定路径。您可以使用:ro或等权限向容器 ID 添加后缀:rw。更多详细信息请参见此处-从容器安装卷 (--volumes-from)部分
另一个问题是哪些-v可以做,哪些--volumes-from不能做?
例如,它可以挂载命名卷,您可以挂载主机目录或tmpfs(这一点不能在容器之间共享)。您--volume-from无法直接与主机共享数据。
结论是:目的--volume是与主机共享数据。(在这里您可以找到更多用例)。
目的--volumes-from是在容器之间共享数据。
他们俩合作得很好。
| 归档时间: |
|
| 查看次数: |
1198 次 |
| 最近记录: |