¼ÓÈëÊÕ²Ø | ÉèΪÊ×Ò³ | »áÔ±ÖÐÐÄ | ÎÒҪͶ¸å Àî´óͬ £¨https://www.lidatong.com.cn/£©- ¿Æ¼¼¡¢½¨Õ¾¡¢¾­Ñé¡¢ÔƼÆËã¡¢5G¡¢´óÊý¾Ý,Õ¾³¤Íø!
µ±Ç°Î»Ö㺠Ê×Ò³ > ×ۺϾ۽¹ > ·þÎñÆ÷ > °²È« > ÕýÎÄ

dz̸dockerѧϰ֮dockerÊý¾Ý¾í(volume)

·¢²¼Ê±¼ä£º2020-12-16 03:47:02 ËùÊôÀ¸Ä¿£º°²È« À´Ô´£ºÍøÂçÕûÀí
µ¼¶Á£º1.ʲôÊÇÊý¾Ý¾ívolume ΪÁËÁ˽âʲôÊÇDocker Volume£¬Ê×ÏÈÎÒÃÇÐèÒªÃ÷È·DockerÄÚµÄÎļþϵͳÊÇÈçºÎ¹¤×÷µÄ¡£Docker¾µÏñ±»´æ´¢ÔÚһϵÁеÄÖ»¶Á²ã¡£µ±ÎÒÃÇ¿ªÆôÒ»¸öÈÝÆ÷£¬Docker¶ÁÈ¡Ö»¶Á¾µÏñ²¢Ìí¼ÓÒ»¸ö¶Áд²ãÔÚ¶¥²¿¡£Èç¹ûÕýÔÚÔËÐеÄÈÝÆ÷ÐÞ¸ÄÁËÏÖÓеÄÎļþ£¬¸ÃÎļþ½«

1.ʲôÊÇÊý¾Ý¾ívolume

ΪÁËÁ˽âʲôÊÇDocker Volume£¬Ê×ÏÈÎÒÃÇÐèÒªÃ÷È·DockerÄÚµÄÎļþϵͳÊÇÈçºÎ¹¤×÷µÄ¡£Docker¾µÏñ±»´æ´¢ÔÚһϵÁеÄÖ»¶Á²ã¡£µ±ÎÒÃÇ¿ªÆôÒ»¸öÈÝÆ÷£¬Docker¶ÁÈ¡Ö»¶Á¾µÏñ²¢Ìí¼ÓÒ»¸ö¶Áд²ãÔÚ¶¥²¿¡£Èç¹ûÕýÔÚÔËÐеÄÈÝÆ÷ÐÞ¸ÄÁËÏÖÓеÄÎļþ£¬¸ÃÎļþ½«±»¿½±´³öµ×²ãµÄÖ»¶Á²ãµ½×²ãµÄ¶Áд²ã¡£ÔÚ¶Áд²ãÖеľɰ汾ÎļþÒþ²ØÓÚ¸ÃÎļþ֮ϣ¬µ«²¢Ã»Óб»²»ÆÆ»µ - ËüÈÔÈ»´æÔÚÓÚ¾µÏñÒÔÏ¡£µ±DockerµÄÈÝÆ÷±»É¾³ý£¬È»ºóÖØÐÂÆô¶¯¾µÏñʱ£¬½«¿ªÆôÒ»¸öûÓÐÈκθü¸ÄµÄеÄÈÝÆ÷ - ÕâЩ¸ü¸Ä»á¶ªÊ§¡£´ËÖ»¶Á²ã¼°ÔÚ¶¥²¿µÄ¶Áд²ãµÄ×éºÏ±»Docker³ÆΪUnion File System£¨ÁªºÏÎļþϵͳ£©¡£
ΪÁËÄܹ»±£´æ£¨³Ö¾Ã£©Êý¾ÝÒÔ¼°¹²ÏíÈÝÆ÷¼äµÄÊý¾Ý£¬DockerÌá³öÁËVolumesµÄ¸ÅÄî¡£ºÜ¼òµ¥£¬volumesÊÇĿ¼£¨»òÕßÎļþ£©£¬ËüÃÇÊÇÍⲿĬÈϵÄÁªºÏÎļþϵͳ»òÕßÊÇ´æÔÚÓÚËÞÖ÷ÎļþϵͳÕý³£µÄĿ¼ºÍÎļþ¡£

2.ΪʲôʹÓÃÊý¾Ý¾ívolume

DockerµÄ¾µÏñÊÇÓÉһϵÁеÄÖ»¶Á²ã×éºÏ¶øÀ´£¬µ±Æô¶¯Ò»¸öÈÝÆ÷µÄʱºò£¬Docker¼ÓÔؾµÏñµÄËùÓÐÖ»¶Á²ã£¬²¢ÔÚ×îÉϲã¼ÓÈëÒ»¸ö¶Áд²ã¡£Õâ¸öÉè¼ÆʹµÃDocker¿ÉÒÔÌá¸ß¾µÏñ¹¹½¨¡¢´æ´¢ºÍ·Ö·¢µÄЧÂÊ£¬½ÚÊ¡ÁËʱ¼äºÍ´æ´¢¿Õ¼ä£¬È»¶øÒ²´æÔÚÈçÏÂÎÊÌâ¡£

£¨1£©ÈÝÆ÷ÖеÄÎļþÔÚËÞÖ÷»úÉÏ´æÔÚÐÎʽ¸´ÔÓ£¬²»ÄÜÔÚËÞÖ÷»úÉϺܷ½±ãµÄ¶ÔÈÝÆ÷ÖеÄÎļþ½øÐзÃÎÊ

£¨2£©¶à¸öÈÝÆ÷Ö®¼äµÄÊý¾ÝÎÞ·¨¹²Ïí

£¨3£©µ±É¾³ýÈÝÆ÷ʱ£¬ÈÝÆ÷²úÉúµÄÊý¾Ý½«¶ªÊ§

ΪÁ˽â¾öÕâЩÎÊÌ⣬DockerÒýÈëÁËÊý¾Ý¾í£¨volume£©»úÖÆ¡£volumeÊÇ´æÔÚÒ»¸ö»ò¶à¸öÈÝÆ÷ÖеÄÌض¨Îļþ»òÎļþ¼Ð£¬Õâ¸öĿ¼Äܹ»¶ÀÁ¢ÓÚÁªºÏÎļþϵͳµÄÐÎʽÔÚËÞÖ÷»úÖдæÔÚ£¬²¢ÎªÊý¾ÝµÄ¹²ÏíÓë³Ö¾ÃÌṩһϱãÀû¡£

£¨1£©volumeÔÚÈÝÆ÷´´½¨Ê±¾Í³õʼ»¯£¬ÔÚÈÝÆ÷ÔËÐÐʱ¾Í¿ÉÒÔʹÓÃÆäÖеÄÎļþ

£¨2£©volumeÄÜÔÚ²»Í¬µÄÈÝÆ÷Ö®¼ä¹²ÏíºÍÖØÓÃ

£¨3£©¶ÔvolumeÖеÄÊý¾ÝµÄ²Ù×÷»áÂíÉÏÉúЧ

£¨4£©¶ÔvolumeÖÐÊý¾Ý²Ù×÷²»»áÓ°Ïìµ½¾µÏñ±¾Éí

£¨5£©volumeµÄÉú´æÖÜÆÚ¶ÀÁ¢ÓÚÈÝÆ÷µÄÉú´æÖÜÆÚ£¬¼´Ê¹É¾³ýÈÝÆ÷£¬volumeÈÔÈ»»á´æÔÚ£¬Ã»ÓÐÈκÎÈÝÆ÷ʹÓõÄvolumeÒ²²»»á±»Dockerɾ³ý

3.ÈçºÎʹÓÃÊý¾Ý¾í 

3.1 ´ÓÈÝÆ÷¹ÒÔØvolume(-v /path)

ÔÚʹÓÃdocker run´´½¨ÐÂÈÝÆ÷µÄʱºò£¬¿ÉÒÔʹÓÃ-v ±êǩΪÈÝÆ÷Ìí¼ÓÊý¾Ý¾ívolume£¬ÒÔÏÂÓ÷¨ÊÇ´ÓÈÝÆ÷ÖеÄij¸öÎļþ¼Ð´´½¨volume£¬Èç¹ûÈÝÆ÷ÖÐÖ¸¶¨µÄÎļþ¼Ð²»´æÔÚ£¬»á×Ô¶¯Éú³É


ÔÚÉÏÃæµÄ¸ÅÄîÖУ¬ÓÐ˵µÀ£¬ËÞÖ÷»úÓ¦¸Ã»áÓÐÒ»¸öÎļþ¼Ð°ó¶¨¹ÒÔص½ÈÝÆ÷ÖеÄvolume¹ÒÔص㣬ÄÇĬÈϵÄËÞÖ÷»úÉϵÄÎļþ¼ÐÔÚÄÄÄØ£¬Ê¹ÓÃdocker inspectÃüÁ²é¿´ÏÂÈÝÆ÷ÏêÇ飨CRTÁîÆðÒ»¸öSSHÖնˣ©

[root@localhost ~]# docker inspect volume-test01 
[ 
 { 
  "Id": "81a74152e6f45a3f780ac7cdc37c9a089814f9a70aad1d27747093ca3c3dae3e","Created": "2016-08-25T07:48:55.942949334Z","Path": "/bin/bash","Args": [],"State": { 
   "Status": "running","Running": true,"Paused": false,"Restarting": false,"OOMKilled": false,"Dead": false,"Pid": 10199,"ExitCode": 0,"Error": "","StartedAt": "2016-08-25T07:48:56.777918888Z","FinishedAt": "0001-01-01T00:00:00Z" 
  },"Image": "sha256:4fd21defa24c8c07b3689b267a63d563ca0e26ef931b329fc3f3d46efb5bba2d","ResolvConfPath": "/var/lib/docker/containers/81a74152e6f45a3f780ac7cdc37c9a089814f9a70aad1d27747093ca3c3dae3e/resolv.conf","HostnamePath": "/var/lib/docker/containers/81a74152e6f45a3f780ac7cdc37c9a089814f9a70aad1d27747093ca3c3dae3e/hostname","HostsPath": "/var/lib/docker/containers/81a74152e6f45a3f780ac7cdc37c9a089814f9a70aad1d27747093ca3c3dae3e/hosts","LogPath": "","Name": "/volume-test01","RestartCount": 0,"Driver": "devicemapper","MountLabel": "system_u:object_r:svirt_sandbox_file_t:s0:c47,c332","ProcessLabel": "system_u:system_r:svirt_lxc_net_t:s0:c47,"AppArmorProfile": "","ExecIDs": null,"HostConfig": { 
   "Binds": null,"ContainerIDFile": "","LogConfig": { 
    "Type": "journald","Config": {} 
   },"NetworkMode": "default","PortBindings": {},"RestartPolicy": { 
    "Name": "no","MaximumRetryCount": 0 
   },"VolumeDriver": "","VolumesFrom": null,"CapAdd": null,"CapDrop": null,"Dns": [],"DnsOptions": [],"DnsSearch": [],"ExtraHosts": null,"GroupAdd": null,"IpcMode": "","Links": null,"OomScoreAdj": 0,"PidMode": "","Privileged": false,"PublishAllPorts": false,"ReadonlyRootfs": false,"SecurityOpt": null,"UTSMode": "","ShmSize": 67108864,"ConsoleSize": [ 
    0,0 
   ],"Isolation": "","CpuShares": 0,"CgroupParent": "","BlkioWeight": 0,"BlkioWeightDevice": null,"BlkioDeviceReadBps": null,"BlkioDeviceWriteBps": null,"BlkioDeviceReadIOps": null,"BlkioDeviceWriteIOps": null,"CpuPeriod": 0,"CpuQuota": 0,"CpusetCpus": "","CpusetMems": "","Devices": [],"KernelMemory": 0,"Memory": 0,"MemoryReservation": 0,"MemorySwap": 0,"MemorySwappiness": -1,"OomKillDisable": false,"PidsLimit": 0,"Ulimits": null 
  },"GraphDriver": { 
   "Name": "devicemapper","Data": { 
    "DeviceId": "29","DeviceName": "docker-253:0-101330881-9cb32851050b1707022b475489686582a272d883a56a8ff52f3344f56b65639f","DeviceSize": "10737418240" 
   } 
  },"Mounts": [ 
   { 
    "Name": "5ddd734c53a38a78a9f739157c63074b4aff736d4045925616d7753402304137","Source": "/var/lib/docker/volumes/5ddd734c53a38a78a9f739157c63074b4aff736d4045925616d7753402304137/_data","Destination": "/opt/vol-data","Driver": "local","Mode": "","RW": true,"Propagation": "" 
   } 
  ],"Config": { 
   "Hostname": "81a74152e6f4","Domainname": "","User": "","AttachStdin": true,"AttachStdout": true,"AttachStderr": true,"Tty": true,"OpenStdin": true,"StdinOnce": true,"Env": null,"Cmd": [ 
    "/bin/bash" 
   ],"Image": "test/mycentos:v1.0","Volumes": { 
    "/opt/vol-data": {} 
   },"WorkingDir": "","Entrypoint": null,"OnBuild": null,"Labels": {} 
  },"NetworkSettings": { 
   "Bridge": "","SandboxID": "c73841812aab480cf8e6a02071e36951dceb002d7b36f7dc0b38ccd9db833ba5","HairpinMode": false,"LinkLocalIPv6Address": "","LinkLocalIPv6PrefixLen": 0,"Ports": {},"SandboxKey": "/var/run/docker/netns/c73841812aab","SecondaryIPAddresses": null,"SecondaryIPv6Addresses": null,"EndpointID": "3e492b611d9bd2c202c8a6c8fe4b4a755393545348b1aeb4e60995609dabb07c","Gateway": "172.17.0.1","GlobalIPv6Address": "","GlobalIPv6PrefixLen": 0,"IPAddress": "172.17.0.2","IPPrefixLen": 16,"IPv6Gateway": "","MacAddress": "02:42:ac:11:00:02","Networks": { 
    "bridge": { 
     "IPAMConfig": null,"Aliases": null,"NetworkID": "54001aaff29a231c9b2fe83459805d99dce0c21d6e2719f9b11bc90d8fe2f9c9","MacAddress": "02:42:ac:11:00:02" 
    } 
   } 
  } 
 } 
] 

×¢Òâ¿´Mounts½Úµã(DockerµÄ°æ±¾ÓõÄÊÇ1.10.3),Êý¾Ý¾íµÄʹÓã¬ÀàËÆÓÚ Linux ϶ÔĿ¼»òÎļþ½øÐÐ mount¡£

"Mounts": [ 
   { 
    "Name": "5ddd734c53a38a78a9f739157c63074b4aff736d4045925616d7753402304137","Propagation": "" 
   } 
  ] 


     

µ±ÎÒÃÇÔÚÈÝÆ÷µÄvolumeÉϲÙ×÷ʱ£¬ËÞÖ÷»úÉ϶ÔÓ¦µÄÎļþÊÇ·ñÒ²»á¸ú×ű䶯ÄØ£¿²âÊÔһϣ¬ÔÚÈÝÆ÷µÄvolumeÉÏ´´½¨Ò»¸öÎļþtest.txt£¬È»ºó²é¿´ËÞÖ÷»úÊDz»ÊÇÒ²»áͬ²½´æÔÚ



¾­²âÊÔ£¬µ±ÈÝÆ÷ÉϵÄvolumeÓб䶯ʱ£¬ËÞÖ÷»úÒ²»á¸ú×ű䶯£¬ÄÇ·´¹ýÀ´ÄØ£¿¾­²âÊÔÒ²ÊÇÒ»ÑùµÄ¡£²»¹ÜÊÇÈÝÆ÷¹ÒÔص㷢Éú±ä¶¯»¹ÊÇËÞÖ÷»ú¶Ô¹ÒÔØĿ¼½øÐвÙ×÷£¬ÁîÒ»·½¶¼»á¸ú×ű䶯¡£

ÀûÓÃdocker commitÉú³ÉоµÏñ£¬È»ºódocker run -it ÔËÐÐоµÏñ£¬·¢ÏÖÈÝÆ÷¹ÒÔØĿ¼ÏÂûÓÐÈκÎÎļþÁË¡£ËµÃ÷Éú³ÉоµÏñʱ£¬ÊDz»±£´æ¹ÒÔØÎļþµÄ¡£

3.2´ÓËÞÖ÷»ú¹ÒÔØvolume(-v /host-path:/container-path)

½«Ö÷»úµÄÎļþ»òÎļþ¼Ð×÷Ϊvolume¹ÒÔØʱ£¬¿ÉÒÔÓöà¸ö -v±êǩΪÈÝÆ÷Ìí¼Ó¶à¸övolume£¬»¹¿ÉÒÔʹÓÃ:roÖ¸¶¨¸ÃvolumeΪֻ¶Á¡£×¢Ò⣺Èç¹ûÈÝÆ÷ÖÐÖ¸¶¨µÄ¹ÒÔØĿ¼´æÔÚÏàͬµÄÎļþʱ£¬»á±»ËÞÖ÷»ú¸²¸Çµô


ÔÚËÞÖ÷»úÉϽ¨Á¢ÁË/opt/vol-01ºÍ/opt/vol-02¹ÒÔص㣬·Ö±ðºÍÈÝÆ÷ÖеÄ/opt/vol-test-1ºÍ/opt/vol-test-2¶ÔÓ¦£¬Ç°ÕßȨÏÞĬÈ϶Áд£¬ºóÕßÖ»ÄܶÁ,ÓÃdocker inspect


µ±ÔÚÈÝÆ÷µÄvol-test-2ÉÏн¨²Ù×÷ʱ£¬»áÌáʾֻ¶Á.ÔÚËÞÖ÷»úÉÏ£¬2¸ö¹ÒÔصãÐÂÔö£¬Ð޸ģ¬É¾³ý²Ù×÷¶¼OK£¬µ«ÊÇÔÚÈÝÆ÷ÖоÓÈ»2¸ö¶¼²»ÐУ¬°´Àí˵ӦÓÃÊǵڶþ¸övol-test-2²»ÐвŶԣ¬²»ÖªÊÇÄÄÀï³öÎÊÌâÁË¡£

ÀûÓÃdocker commitÉú³ÉоµÏñ£¬È»ºódocker run -it ÔËÐÐоµÏñ£¬·¢ÏÖÈÝÆ÷¹ÒÔØĿ¼ÏÂûÓÐÈκÎÎļþÁË¡£ËµÃ÷Éú³ÉоµÏñʱ£¬ÊDz»±£´æ¹ÒÔØÎļþµÄ¡£

3.3ʹÓÃDockerfileÌí¼Óvolume

ʹÓÃVOLUMEÖ¸ÁîÏòÈÝÆ÷Ìí¼Óvolume

VOLUME /data

¶à¸öʱVOLUME ["/data1","/data2"]

ÕâÖÖÇé¿öºÍµÚÒ»¸öÖÐÇé¿ödocker run -v /dataÊÇÒ»ÑùµÄ¡£×¢Ò⣬dockerfileÖÐʹÓÃvolumeÊDz»Äܺ͵ڶþÖÖ·½·¨ÄÇÑù¹ÒÔØËÞÖ÷»úÖÐÖ¸¶¨µÄÎļþ¼Ð¡£ÕâʱΪÁ˱£Ö¤DockerfileµÄ¿ÉÒÆÖ²ÐÔ£¬ÒòΪ²»Äܱ£Ö¤ËùÓеÄËÞÖ÷»ú¶¼ÓжÔÓ¦µÄÎļþ¼Ð¡£

ÐèҪעÒâµÄÊÇ£¬ÔÚDockerfileÖÐʹÓÃVOLUMEÖ¸Áîºó£¬Èç¹û³¢ÊÔ¶ÔÕâ¸övolume½øÐÐÐ޸ģ¬ÕâЩÐÞ¸ÄÖ¸Á²»»áÉúЧ£¬±ÈÈçÏÂÃæÀý×Ó£¬³¢ÊÔÌí¼ÓÒ»¸öÎļþ£¬²¢ÐÞ¸ÄÎļþ²¢¸Ä±äÎļþËùÓÐȨÏÞ

FROM test/mycent:v1.0 
RUN useradd foo 
VOLUME /data 
RUN touch /data/x 
RUN chown -R foo:foo /data 

ͨ¹ý¸ÃDockerfile´´½¨¾µÏñ²¢Æô¶¯ÈÝÆ÷ºó£¬¸ÃÈÝÆ÷ÖдæÔÚÓû§foo£¬²¢ÇÒÄÜ¿´µ½ÔÚ/data¹ÒÔصÄvolume£¬µ«ÊÇ/dataÎļþ¼ÐµÄËùÓÐÕß²¢Ã»Óб»¸Ä±äΪfoo£¬¶øÇÒ/dataÏÂҲûÓÐ/data/xÎļþ¡£µ«ÊÇÈç¹û˳Ðò·´¹ýÀ´£¬ÏȽ¨Îļþ£¬ÏÈÊÚȨ£¬ÔÙ¹ÒÔØvolume£¬ÄǾ͵õ½ÆÚ´ýµÄ½á¹û¡£

4.¹²Ïívolume/Êý¾Ý¾íÈÝÆ÷(--volumes-from)

Èç¹ûÄãÓÐһЩ³ÖÐø¸üеÄÊý¾ÝÐèÒªÔÚÈÝÆ÷Ö®¼ä¹²Ïí£¬×îºÃ´´½¨Êý¾Ý¾íÈÝÆ÷¡£Êý¾Ý¾íÈÝÆ÷£¬Æäʵ¾ÍÊÇÒ»¸öÕý³£µÄÈÝÆ÷£¬×¨ÃÅÓÃÀ´ÌṩÊý¾Ý¾í¹©ÆäËüÈÝÆ÷¹ÒÔصġ£

ÏÈ´´½¨Ò»¸öÃûΪdbdataµÄÊý¾Ý¾íÈÝÆ÷£¬×¨ÃŹ²ÆäËûÈÝÆ÷¹ÒÔØ¡£


     ÔÚ/opt/dbdataÏ´´½¨ÁËÒ»¸öÎļþdb.properties¡£

     ÔÙÆô¶¯2¸öÈÝÆ÷£¬a£¬b¶¼a--volumes-from dbdata,b --volumes-from a.



    ¿ÉÒÔ¿´µ½vol_a,vol_bÈÝÆ÷µÄ/opt/dbdata϶¼ÓÐdb.propertiesÎļþ¡£ÔÚvol_bµÄ/opt/dbdataÏ´´½¨Îļþvol_b.txtʱ£¬ÈÝÆ÷dbdata,vol_aÒ²¶¼Í¬Ê±Í¬²½ÁË¡£

    ¶Ôdbdata,vol_a,vol_bʹÓÃÃüÁîdocker inspectʱ£¬·¢ÏÖËûÃǵÄMountsϵÄSource¶¼ÊÇÒ»ÑùµÄ£¬ËµÃ÷ËüÃǶ¼°ó¶¨µ½ËÞÖ÷»úµÄͬһ¸öĿ¼£¬ËùÒÔµ±Ä³¸öÈÝÆ÷µÄ¹ÒÔØÐÞ¸Äʱ£¬ÆäËûÈÝÆ÷Ò²¿´µ½ÁËͬÑùµÄЧ¹û


Èç¹û¹ÒÔØÔ´Óжà¸öʱ£¬¿ÉÒÔʹÓöà¸ö--volumes-from£¬Èç

docker run -it --name vol_use --volumes-from vol_a --volumes-from vol_b test/mycentos:v1.0 /bin/bash.

   Èç¹ûÒ»¸öÈÝÆ÷¹ÒÔÚÁËvolume£¬¼´Ê¹ÈÝÆ÷Í£Ö¹ÁËÔËÐУ¬¸ÃvolumeÈÔÈ»´æÔÚ£¬ÆäËûÈÝÆ÷ÈÔÈ»¿ÉÒÔ¼ÌÐø--volumes-fromËü¡£


5.ɾ³ývolume

Èç¹û´´½¨ÈÝÆ÷ʱ¹ÒÔØÁËvolume£¬

ÔÚ/var/lib/docker/volumes/04b003b21b873157433deffbaf08bb0c89d234d3ec3c6576fdd7b61f5d41163e/_dataÏ»áÉú³ÉÏàÓ¦µÄÎļþ£¨Â·¾¶£¬²»Í¬°æ±¾£¬²»Í¬²Ù×÷ϵͳ»áÓÐËù²»Í¬£¬¾ßÌå¿ÉÒÔÓÃdocker inspect²é¿´ÈÝÆ÷¾ßÌåÐÅÏ¢£©£¬µ±É¾³ýÈÝÆ÷ʱ£¬ËÞÖ÷»úÉϵĹÒÔØĿ¼ʱ²»»áɾ³ýµÄ£¬²¢ÇÒĿ¼Ãû³ÆÊÇËæ»ú×Ö·û£¬²»ÖªÒâÒ壬ËùÒÔÔÚɾ³ýÈÝÆ÷ʱ£¬ÐèÒªÍ×ÉÆ´¦ÀíÈÝÆ÷µÄvolume¡£É¾³ýÈÝÆ÷ʱһ²¢É¾³ývolumeÓÐ2Öз½·¨

£¨1£©docker rm -v ɾ³ýÈÝÆ÷¡£¾ÍÊÇɾ³ýÈÝÆ÷ʱ£¬¼ÓÉÏ-v

£¨2£©docker run --rm .¾ÍÊÇÆô¶¯ÈÝÆ÷µÄʱºò¼ÓÉÏ--rm£¬ÄÇôµ±ÈÝÆ÷ÔËÐÐֹͣʱ»á×Ô¶¯É¾³ýÈÝÆ÷ÒÔ¼°ÈÝÆ÷Ëù¹ÒÔصÄvolume

ÉÏÃæ´´½¨ÁËÈÝÆ÷dbdata,vol_b,vol_c,ÏÖÔÚʹÓÃdocker rm -v¿´¿´ÓÐʲôЧ¹û¡£


vol_cÊÇ--volumes-from dbdataµÄ£¬É¾³ývol_cʱ£¬ËÞÖ÷»úµÄ¹ÒÔØĿ¼ÈÔ´æÔÚ£¬Ã»É¾µô£¬²Â²âÄÇÊÇÒòΪ»¹ÓÐÆäËûÈÝÆ÷ÔÚÁ¬×Å»òÕß˵ÊÇdbdata -vµÄʱºò´´½¨µÄ¡£ÄÇÏÖÔÚɾ³ýdbdataÈÝÆ÷ÊÔÊÔ¿´£¨vol_aÊÇ--volumes-from dbdataµÄ£¬vol_a»¹Ã»É¾³ý£¬ÑéÖ¤ÏÂÄÜ·ñɾ³ýdbdata)¡£


·¢ÏÖdbdataɾ³ýʱ£¬ËÞÖ÷»úÄÇĿ¼ÈÔÈ»´æÔÚ£¬Í¬Ê±Ò²ËµÃ÷ÄÄÅÂvol_aÊÇ--volumes-from dbdataµÄ£¬vol_a»¹Ã»É¾³ý£¬ÄÇҲûӰÏ졣ͬʱҲ˵Ã÷Ö»Òª»¹ÓÐÒ»¸öÈÝÆ÷ÔÚ¹ÒÔØÕâËÞÖ÷»úµÄĿ¼£¬ÄÇËÞÖ÷»úµÄĿ¼¾Í²»»áɾ³ý¡£ÄǽÓÏÂÀ´£¬°ÑËùÓÐÈÝÆ÷¶¼É¾³ý£¬ÔÙ¿´½á¹û¡£


¿ÉÒÔ¿´µ½£¬µ±×îºóÒ»¸öÈÝÆ÷ɾ³ýºó£¬ËÞÖ÷»úÄÇvolumeĿ¼ÖÕÓÚɾ³ýÁË.

6.±¸·Ý¡¢»Ö¸´»òǨÒÆvolume

ÉÏÃæÓвâÊÔ¹ý£¬µ±Ê¹ÓÃdocker commitµÈÊÖ¶ÎÉú³ÉоµÏñ£¬È»ºóÔÙÆô¶¯¾µÏñÉú³ÉÐÂÈÝÆ÷ʱ£¬Ô­ÏÈvolumeĿ¼ÏµÄÎļþ²»¼ûÁË£¬¿ÉÒÔÉú³ÉоµÏñʱ£¬²¢Ã»ÓаÑvolumeϵÄÎļþÒ»Æð´ò°üÉú³É¾µÏñ¡£

volume×÷ΪÊý¾ÝµÄÔØÌ壬ÔںܶàÇé¿öÏÂÐèÒª¶ÔÆäÖеÄÊý¾Ý½øÐб¸·Ý¡¢Ç¨ÒÆ£¬»òÊÇ´ÓÒÑÓÐÊý¾Ý»Ö¸´¡£Ò»¸öºÜÈÝÒ×Ïëµ½µÄ·½·¨¾ÍÊÇÓÃdocker inspectÃüÁî²éÕÒµ½volume¶ÔÓ¦ËÞÖ÷»úÉ϶ÔÓ¦µÄÄǸöĿ¼λÖã¬È»ºó¸´ÖÆÆäÖÐÄÚÈÝ»òʹÓÃtar´ò°ü¡£µ±ÕâЩ±¿×¾µÄ×ö·¨²¢²»ÖµµÃÍƼö£¬ÒòΪ²éÕÒÖ÷»úÉÏÎļþ¼ÐºóÔÙ²Ù×÷ÈÝÒ׳ö´í£¬Ò²²»ÊʺϽű¾µÄ×Ô¶¯»¯Ö´ÐС£

±¸·Ývolume¿ÉÒÔʹÓÃÒÔÏ·½·¨

¸´ÖÆ´úÂë ´úÂëÈçÏÂ:

docker run --rm --volumes-from dbdata -v $(pwd):/backup test/mycentos:v1.0 tar cvf /back/data.tar /data

ÕâÐÐÖ¸ÁîÆô¶¯ÁËÒ»¸öÁÙʱµÄÈÝÆ÷£¬Õâ¸öÈÝÆ÷¹ÒÔØÁËÁ½¸övolume£¬µÚÒ»¸övolumeÓëÒª±¸·ÝµÄvolume¹²Ïí£¬µÚ¶þ¸övolume½«ËÞÖ÷»úµÄµ±Ç°Ä¿Â¼£¨Ò²¿ÉÒÔ¾ø¶Ô·¾¶£©¹ÒÔص½ÈÝÆ÷µÄ/backupÏ¡£ÈÝÆ÷ÔËÐкó½«Òª±¸·ÝµÄÈÝÆ÷£¨/data£©±¸·Ýµ½/backup/data.tar£¬È»ºóɾ³ýÈÝÆ÷£¬±¸·ÝºóµÄdata.tar¾ÍÁôÔÚÁ˵±Ç°Ä¿Â¼¡£²Ù×÷ÑéÖ¤Ò»ÏÂ


¾ÓÈ»±¨´íÁË£¬ËµÃ»ÓÐȨÏÞ¡£½øÈëÈÝÆ÷-itʱ£¬ÊÇdockerËæ»úÉú³ÉÒ»¸öÓû§µÄ£¬ÖÁÓÚÔõÑù¸ø¸ÃÓû§ÊÚȨ£¬ÒÔºóÔÙÑо¿°É¡£

ÒÔÉϾÍÊDZ¾ÎĵÄÈ«²¿ÄÚÈÝ£¬Ï£Íû¶Ô´ó¼ÒµÄѧϰÓÐËù°ïÖú£¬Ò²Ï£Íû´ó¼Ò¶à¶àÖ§³Ö±à³ÌС¼¼ÇÉ¡£

£¨±à¼­£ºÀî´óͬ£©

¡¾ÉùÃ÷¡¿±¾Õ¾ÄÚÈݾùÀ´×ÔÍøÂ磬ÆäÏà¹ØÑÔÂÛ½ö´ú±í×÷Õ߸öÈ˹۵㣬²»´ú±í±¾Õ¾Á¢³¡¡£ÈôÎÞÒâÇÖ·¸µ½ÄúµÄȨÀû£¬Ç뼰ʱÓëÁªÏµÕ¾³¤É¾³ýÏà¹ØÄÚÈÝ!

    ÍƼöÎÄÕÂ
      ÈȵãÔĶÁ