Azi*_*ima 5 docker docker-volume
我正在使用docker version 18.09.2, build 6247962.
我运行一个容器并将主机目录安装到容器中。
docker run -it -p 4444:8000 -v c:/py:/azima 27b4b21eeb64 /bin/sh
Run Code Online (Sandbox Code Playgroud)
这创建了一个容器,并且主机目录c:/py已挂载到/azima.
我可以检查、创建、读取文件并且它正在工作。
但是从another powershell我运行这个命令开始docker volume ls。
这显示为空。
检查container提供此信息(如果有帮助):
"Mounts": [
{
"Type": "bind",
"Source": "/host_mnt/c/py",
"Destination": "/azima",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],
Run Code Online (Sandbox Code Playgroud)
为什么没有列出卷?
mch*_*wre 10
这是因为-v c:/py:/azima选项将使用bind-mountsc:/py挂载到/azima容器内的目录。
绑定挂载基本上只是从容器内的主机绑定某个目录或文件,正如您所做的那样。
这就是为什么当您检查容器时您会看到"Type": "bind"
而docker volume将创建您使用 手动创建的命名卷docker volume create VOLUME_NAME。它们是在中创建的/var/lib/docker/volumes,并且只能通过它们的名称来引用。
这些命名卷仅在docker volume ls命令中列出。
当您检查连接到此类卷的容器时,您会看到"Type": "volume"
更多信息请点击这里。
希望这可以帮助。
Docker 卷和 Docker 挂载是两个不同的东西。
在绑定挂载中,我们指定了它
Host Path,但它不会显示在docker volumes ls我们指定的 docker 卷中volume name,我们可以使用以下命令查看 docker 卷docker volumes ls
卷:卷是存储 Docker 容器创建或使用的持久数据的首选方式。主机文件系统还存储卷,类似于绑定安装。然而,Docker 完全管理它们并默认将它们存储在 ~/docker/volumes 下。
docker volume create alpine_test
Run Code Online (Sandbox Code Playgroud)
现在运行容器
docker run --rm -v alpine_test:/root alpine ash -c "touch /root/test.txt"
Run Code Online (Sandbox Code Playgroud)
这只会使用卷创建一个文件alpine_test,并且容器将终止。
现在,如果我们运行另一个容器并列出文件
docker run -v alpine_test:/root alpine ash -c "ls /root/"
Run Code Online (Sandbox Code Playgroud)
尽管如此,我们仍然可以看到最后创建的文件。
如果容器终止,数据仍保留在卷中并可供以后使用。
如果您检查附加卷的容器,它将显示 docker 卷路径
docker inspect container_id
"Mounts": [
{
"Type": "volume",
"Name": "alpine_test",
"Source": "/var/snap/docker/common/var-lib-docker/volumes/alpine_test/_data",
"Destination": "/root",
"Driver": "local",
"Mode": "z",
"RW": true,
"Propagation": ""
}
],
Run Code Online (Sandbox Code Playgroud)
绑定挂载:绑定挂载是存储在容器主机文件系统上任何位置的文件或文件夹,挂载到正在运行的容器中。绑定挂载与卷的主要区别在于,由于它可以存在于主机文件系统上的任何位置,因此 Docker 外部的进程也可以修改它。
docker run -v /home/test/:/test -it --rm alpine
Run Code Online (Sandbox Code Playgroud)
对于安装,如果您检查容器,您将看到主机安装路径位置。
docker inspect container_id
"Mounts": [
{
"Type": "bind",
"Source": "/home/test/",
"Destination": "/root",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5277 次 |
| 最近记录: |