docker挂载
docker存储docker存储数据卷(volume)创建数据卷查看卷检查卷信息挂载数据卷数据卷删除目录挂载挂载主机文件数据卷(volume)数据卷是一种特殊的目录,可以被多个容器使用创建数据卷docker volume create 卷名例如:MacBook-Pro:~$ docker volume create vol-tes...
docker存储
数据卷(volume)
数据卷是一种特殊的目录,可以被多个容器使用
创建数据卷
docker volume create 卷名
例如:
MacBook-Pro:~$ docker volume create vol-test
vol-test
查看卷列表
MacBook-Pro:~$ docker volume ls
DRIVER VOLUME NAME
local 79c713d89302dbf967318be3eb3a91c27962b5c3f45f7440763d2e08da1f3b75
local 92aadfaf31f7895a46669e2553f4884ae866e33d317a6ef0501df8ede92e221e
local 9e4bb84c385cee9551a5568a7a739aa68e6cbd87e1baaee742d3220d75616185
local vol-test
查看卷
上述例子中已经使用过就是docker volume ls
MacBook-Pro:~$ docker volume ls
DRIVER VOLUME NAME
local 79c713d89302dbf967318be3eb3a91c27962b5c3f45f7440763d2e08da1f3b75
local 92aadfaf31f7895a46669e2553f4884ae866e33d317a6ef0501df8ede92e221e
local 9e4bb84c385cee9551a5568a7a739aa68e6cbd87e1baaee742d3220d75616185
local vol-test
检查卷信息
docker volume inspect 卷名
MacBook-Pro:~$ docker volume inspect vol-test
[
{
"CreatedAt": "2018-06-24T04:46:03Z",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/vol-test/_data",
"Name": "vol-test",
"Options": {},
"Scope": "local"
}
]
挂载数据卷
docker run --name 容器名 -it --mount source=卷名,target=容器内绝对路径(挂载点) 镜像名 bash
或者
docker run --name 容器名 -it -v 卷名:容器内绝对路径(挂载点) 镜像名 bash
挂载就是用–mount参数 source是数据卷,target是容器内文件系统挂载点,
还可以使用-v参数 -v 卷名:容器内绝对路径
例如:
启动两个容器,挂载同一个数据卷共享数据
新建容器m1,并创建文件,内容为aaa
MacBook-Pro:~$ docker run --name m1 -it --mount source=vol-test,target=/root ubuntu bash
root@db69531209b9:/# cd root/
root@db69531209b9:~# echo "aaa" > aaa.txt
root@db69531209b9:~# ls
aaa.txt
启动容器m2,查看文件和内容
fengbindeMacBook-Pro:~$ docker run --name m2 -it --mount source=vol-test,target=/root ubuntu bash
fengbindeMacBook-Pro:~ fengbinshi$ docker run --name m2 -it --mount source=vol-test,target=/root ubuntu bash
root@b549a48ad31d:/# cd root/
root@b549a48ad31d:~# ls
aaa.txt
root@b549a48ad31d:~# cat aaa.txt
aaa
可以看到,数据在m1中创建,m2中也可以读取
数据卷删除
docker volume rm 卷名
来删除指定数据卷
docker volume prune
来删除无主的数据卷
MacBook-Pro:~$ docker volume rm vol-test
vol-test
MacBook-Pro:~$ docker volume prune
WARNING! This will remove all local volumes not used by at least one container.
Are you sure you want to continue? [y/N] y
Deleted Volumes:
9e4bb84c385cee9551a5568a7a739aa68e6cbd87e1baaee742d3220d75616185
79c713d89302dbf967318be3eb3a91c27962b5c3f45f7440763d2e08da1f3b75
92aadfaf31f7895a46669e2553f4884ae866e33d317a6ef0501df8ede92e221e
Total reclaimed space: 0B
目录挂载
docker run -it -v 宿主机目录:容器目录 镜像名 命令
或者
docker run -it --mount type=bind,source=宿主目录,target=容器目录[,readonly] 镜像 命令
在创建容器后我在本地目录下创建文件,并在容器内查看
MacBook-Pro:Desktop$ docker run -it -v /Users/home/Desktop/dockerTest/:/root ubuntu bash
root@d3e4a2ca07ab:/# cd root
root@d3e4a2ca07ab:~# ls
bbb.txt
root@d3e4a2ca07ab:~# cat bbb.txt
bbb
挂载主机文件
命令同目录挂载,只不过把路径换为文件
MacBook-Pro:Desktop fengbinshi$ docker run -it -v $HOME/Desktop/dockerTest/bbb.txt:/root/a.txt ubuntu bash
root@14484f34d384:/# cd root/
root@14484f34d384:~# ls
a.txt
root@14484f34d384:~# cat a.txt
bbb
更多推荐
所有评论(0)