Docker添加多个数据卷的方法
1. 单个添加以官方centos镜像为例,Docker 添加数据卷(Data Volumes)的基本命令为:[root@CentOS ~]# docker run -it -P --name volume_test -v /host_folder:/container_folder/inner_folder centos /bin/bash其中,/host_folder为宿主机的文件夹,...
·
1. 单个添加
以官方centos镜像为例,Docker 添加数据卷(Data Volumes)的基本命令为:
[root@CentOS ~]# docker run -it -P --name volume_test -v /host_folder:/container_folder/inner_folder centos /bin/bash
其中,
/host_folder
为宿主机的文件夹,需要提前mkdir
建好;
/container_folder/inner_folder
为容器内文件夹,运行命令后会自动创建,注意其是可以递归创建的;
另外宿主机的文件可以省略,其缺省路径在/var/lib/docker/volume
下, 可以用docker inspect 容器
命令查看具体路径,但由于其生成的文件夹名是随机的,不方便区别和使用,所以一般情况下不建议省略宿主机文件。
2.多个添加
同时添加多个数据卷的方式也简单粗暴,即添加多个-v
即可:
[root@CentOS ~]# docker run -it -P --name volume_test -v /host_folder_1:/container_folder_1 \
-v /host_folder_2:/container_folder_2:ro \
-v /host_file:/container_file centos /bin/bash
每个数据卷互不影响,可以为不同的权限,不同格式,利用文件数据卷的方式还可以轻松同步容器里的.bash_history
等记录型文件。
宿主机器执行inspect
命令:
[root@CentOS ~]# docker inspect volume_test
可以在Json串中的Mounts
以及HostConfig
下的Binds
看到相应的数据卷信息:
"HostConfig": {
"Binds": [
"/host_folder_1:/container_folder_1",
"/host_folder_2:/container_folder_2:ro",
"/host_file:/container_file"
],
...
}
"Mounts": [
{
"Type": "bind",
"Source": "/host_folder_1",
"Destination": "/container_folder_1",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
},
{
"Type": "bind",
"Source": "/host_folder_2",
"Destination": "/container_folder_2",
"Mode": "ro",
"RW": false,
"Propagation": "rprivate"
},
{
"Type": "bind",
"Source": "/host_file",
"Destination": "/container_file",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
]
表明多个数据卷的同时添加已经生效。
更多推荐
已为社区贡献2条内容
所有评论(0)