dz̸dockerѧϰ֮dockerÊý¾Ý¾í(volume)
1.ʲôÊÇÊý¾Ý¾ívolume ΪÁËÁ˽âʲôÊÇDocker Volume£¬Ê×ÏÈÎÒÃÇÐèÒªÃ÷È·DockerÄÚµÄÎļþϵͳÊÇÈçºÎ¹¤×÷µÄ¡£Docker¾µÏñ±»´æ´¢ÔÚһϵÁеÄÖ»¶Á²ã¡£µ±ÎÒÃÇ¿ªÆôÒ»¸öÈÝÆ÷£¬Docker¶Áȡֻ¶Á¾µÏñ²¢Ìí¼ÓÒ»¸ö¶Áд²ãÔÚ¶¥²¿¡£Èç¹ûÕýÔÚÔËÐеÄÈÝÆ÷ÐÞ¸ÄÁËÏÖÓеÄÎļþ£¬¸ÃÎļþ½«±»¿½±´³öµ×²ãµÄÖ»¶Á²ãµ½×î¶¥²ãµÄ¶Áд²ã¡£ÔÚ¶Áд²ãÖеľɰ汾ÎļþÒþ²ØÓÚ¸ÃÎļþ֮ϣ¬µ«²¢Ã»Óб»²»ÆÆ»µ - ËüÈÔÈ»´æÔÚÓÚ¾µÏñÒÔÏ¡£µ±DockerµÄÈÝÆ÷±»É¾³ý£¬È»ºóÖØÐÂÆô¶¯¾µÏñʱ£¬½«¿ªÆôÒ»¸öûÓÐÈκθü¸ÄµÄеÄÈÝÆ÷ - ÕâЩ¸ü¸Ä»á¶ªÊ§¡£´ËÖ»¶Á²ã¼°ÔÚ¶¥²¿µÄ¶Áд²ãµÄ×éºÏ±»Docker³ÆÎªUnion File System£¨ÁªºÏÎļþϵͳ£©¡£ 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¾ÎĵÄÈ«²¿ÄÚÈÝ£¬Ï£Íû¶Ô´ó¼ÒµÄѧϰÓÐËù°ïÖú£¬Ò²Ï£Íû´ó¼Ò¶à¶àÖ§³Ö±à³ÌС¼¼ÇÉ¡£ £¨±à¼£ºÀî´óͬ£© ¡¾ÉùÃ÷¡¿±¾Õ¾ÄÚÈݾùÀ´×ÔÍøÂ磬ÆäÏà¹ØÑÔÂÛ½ö´ú±í×÷Õ߸öÈ˹۵㣬²»´ú±í±¾Õ¾Á¢³¡¡£ÈôÎÞÒâÇÖ·¸µ½ÄúµÄȨÀû£¬Ç뼰ʱÓëÁªÏµÕ¾³¤É¾³ýÏà¹ØÄÚÈÝ! |
- AngularJS ÊÀ½ç------AngularJS Ö¸ÁîÊÖ²á
- bashµÄÅäÖÃÎļþ¼°×Ö·û´®´¦
- angularjs ¨C ÎÞ·¨×¢Èë$location·þÎñ
- scala ¨C ÈçºÎ±í´ï¸ü¸ßÀàÐ͵ÄÀàÐÍÔ¼Êø
- shell cat EOF ±äÁ¿×Ô¶¯½âÎöÎÊÌâ
- ÀûÓÃHttpModule×öÁ÷Á¿¼Ç¼ »ÉßÌí×ã×îºóÒ»±Ê
- ÊÖ°ÑÊÖ½ÌÄã°ÑVim¸Ä×°³ÉÒ»¸öIDE±à³Ì»·¾³(ͼÎÄ)
- ÈçºÎÅäÖÃrouteProviderºÍlocationProviderÔÚangu
- BootstrapµÄCarouselÅäºÏdropload.jsʵÏÖÒÆ¶¯¶Ë»¬
- angularjs³õʼ»¯Ê±£¬Í¬Ò»·½·¨µ÷ÓÃÁË2´Î