docker 几种磁盘卷挂载方式的区别

[TOC]

容器与主机磁盘关联的方式主要有三种:

  • -v vol_name:/data
  • -v /data
  • -v /home/data:/data。
    选用erkules/galera:latest作为测试容器。

默认方式,不使用-v

使用docker run -d --name test01 erkules/galera,docker会在/var/lib/docker/volumes下随便命令一个目录与容器关联,并且使用docker rm -v会被删除。

-v /data

先查看/var/lib/docker/volumes下磁盘卷情况:

root@centos7 22:26:19 /var/lib/docker/volumes  $  ll
total 0
drwxr-xr-x. 3 root root 18 Jan 11 01:49 3f20fe8058ed83313defc4cf963fe452a0b371b8fcc88850373ff152b5f9f07c
drwxr-xr-x. 3 root root 18 Jan 12 23:28 b5defa5be7743001dac01a5a6e0caa02a123a0070b73aa1c013f219a8c8f9b19
drwxr-xr-x. 3 root root 18 Jan 12 23:28 c0ed357a27739077e719c67d05df7f0c3a84b769a9e2870ceefa99b593274e79
drwxr-xr-x. 3 root root 18 Jan 11 01:49 dfc0e08e2406b4648934d2bdcc93030fd2b2df17757bd668221b8b703559911d
drwxr-xr-x. 3 root root 18 Jan 11 01:49 f1ce00fb43b00d707e519b333ed0667613cfaf10143e0155d53cac79cfbfc15d
drwxr-xr-x. 3 root root 18 Jan 11 01:49 gitlab_data
drwxr-xr-x. 3 root root 18 Jan 11 02:38 jenkins_data
drwxr-xr-x. 3 root root 18 Jan 11 04:01 jenkins_data01
drwxr-xr-x. 3 root root 18 Jan 11 03:59 jenkins_data_20170110

使用命令docker run -d -v /var erkules/galera创建

root@centos7 22:31:05 /var/lib/docker/volumes  $  ll
total 0
drwxr-xr-x. 3 root root 18 Jan 11 01:49 3f20fe8058ed83313defc4cf963fe452a0b371b8fcc88850373ff152b5f9f07c
drwxr-xr-x. 3 root root 18 Jan 12 23:28 b5defa5be7743001dac01a5a6e0caa02a123a0070b73aa1c013f219a8c8f9b19
drwxr-xr-x. 3 root root 18 Jan 12 23:28 c0ed357a27739077e719c67d05df7f0c3a84b769a9e2870ceefa99b593274e79
drwxr-xr-x. 3 root root 18 Jan 11 01:49 dfc0e08e2406b4648934d2bdcc93030fd2b2df17757bd668221b8b703559911d
**drwxr-xr-x. 3 root root 18 Jan 14 22:30 e829ad258509455015d26bcd140779298153c8e8f998d72cda707e4f707f4332**
drwxr-xr-x. 3 root root 18 Jan 11 01:49 f1ce00fb43b00d707e519b333ed0667613cfaf10143e0155d53cac79cfbfc15d
drwxr-xr-x. 3 root root 18 Jan 11 01:49 gitlab_data
drwxr-xr-x. 3 root root 18 Jan 11 02:38 jenkins_data
drwxr-xr-x. 3 root root 18 Jan 11 04:01 jenkins_data01
drwxr-xr-x. 3 root root 18 Jan 11 03:59 jenkins_data_20170110

对比发现,新增了e829ad258509455015d26bcd140779298153c8e8f998d72cda707e4f707f4332目录。

root@centos7 22:26:20 /var/lib/docker/volumes  $  ll e829ad258509455015d26bcd140779298153c8e8f998d72cda707e4f707f4332/_data/
total 8
drwxr-xr-x.  2 root root    6 Apr 11  2014 backups
drwxr-xr-x.  5 root root   45 Mar  4  2016 cache
drwxr-xr-x. 27 root root 4096 Jan 14 22:30 lib
drwxrwsr-x.  2 root ftp     6 Apr 11  2014 local
lrwxrwxrwx.  1 root root    9 Mar  3  2016 lock -> /run/lock
drwxrwxr-x.  7 root  104 4096 Mar  4  2016 log
drwxrwsr-x.  2 root mem     6 Mar  3  2016 mail
drwxr-xr-x.  2 root root    6 Mar  3  2016 opt
lrwxrwxrwx.  1 root root    4 Mar  3  2016 run -> /run
drwxr-xr-x.  5 root root   57 Mar  3  2016 spool
drwxrwxrwt.  2 root root    6 Mar  3  2016 tmp

该目录存放的是新增容器/var目录。
使用docker rm -v 删除,对应的e829ad258509455015d26bcd140779298153c8e8f998d72cda707e4f707f4332也会被删除。

-v vol_name:/data

使用命令docker run -d --name test01 -v test_data:/data erkules/galera创建容器。

root@centos7 22:35:59 /var/lib/docker/volumes  $  ll
total 0
drwxr-xr-x. 3 root root 18 Jan 11 01:49 3f20fe8058ed83313defc4cf963fe452a0b371b8fcc88850373ff152b5f9f07c
drwxr-xr-x. 3 root root 18 Jan 12 23:28 b5defa5be7743001dac01a5a6e0caa02a123a0070b73aa1c013f219a8c8f9b19
drwxr-xr-x. 3 root root 18 Jan 12 23:28 c0ed357a27739077e719c67d05df7f0c3a84b769a9e2870ceefa99b593274e79
drwxr-xr-x. 3 root root 18 Jan 11 01:49 dfc0e08e2406b4648934d2bdcc93030fd2b2df17757bd668221b8b703559911d
drwxr-xr-x. 3 root root 18 Jan 11 01:49 f1ce00fb43b00d707e519b333ed0667613cfaf10143e0155d53cac79cfbfc15d
drwxr-xr-x. 3 root root 18 Jan 11 01:49 gitlab_data
drwxr-xr-x. 3 root root 18 Jan 11 02:38 jenkins_data
drwxr-xr-x. 3 root root 18 Jan 11 04:01 jenkins_data01
drwxr-xr-x. 3 root root 18 Jan 11 03:59 jenkins_data_20170110
**drwxr-xr-x. 3 root root 18 Jan 14 22:35 test_data**

新增test_data目录。
使用docker rm -v 删除,test_data目录仍然存在。

-v /home/data:/data

使用命令docker run -d --name test01 -v /home/test_data:/data erkules/galera创建容器,会在本机创建/home/test_data,并与容器/data关联。

使用docker rm -v删除,/home/test_data目录仍然存在。

你可能感兴趣的:(docker 几种磁盘卷挂载方式的区别)