欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Docker容器學(xué)習梳理--Volume數據卷使用


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Docker中的數據可以存儲在類(lèi)似于虛擬機磁盤(pán)的介質(zhì)中,在Docker中稱(chēng)為數據卷(Data Volume)。數據卷可以用來(lái)存儲Docker應用的數據,也可以用來(lái)在Docker容器間進(jìn)行數據共享。
數據卷呈現給Docker容器的形式就是一個(gè)目錄,支持多個(gè)容器間共享,修改也不會(huì )影響鏡像。使用Docker的數據卷,類(lèi)似在系統中使用 mount 掛載一個(gè)文件系統。
1)一個(gè)數據卷是一個(gè)特別指定的目錄,該目錄利用容器的UFS文件系統可以為容器提供一些穩定的特性或者數據共享。數據卷可以在多個(gè)容器之間共享。
2)創(chuàng )建數據卷,只要在docker run命令后面跟上-v參數即可創(chuàng )建一個(gè)數據卷,當然也可以跟多個(gè)-v參數來(lái)創(chuàng )建多個(gè)數據卷,當創(chuàng )建好帶有數據卷的容器后,
   就可以在其他容器中通過(guò)--volumes-froms參數來(lái)掛載該數據卷了,而不管該容器是否運行。也可以在Dockerfile中通過(guò)VOLUME指令來(lái)增加一個(gè)或者多個(gè)數據卷。
3)如果有一些數據想在多個(gè)容器間共享,或者想在一些臨時(shí)性的容器中使用該數據,那么最好的方案就是你創(chuàng )建一個(gè)數據卷容器,然后從該臨時(shí)性的容器中掛載該數據卷容器的數據。
   這樣,即使刪除了剛開(kāi)始的第一個(gè)數據卷容器或者中間層的數據卷容器,只要有其他容器使用數據卷,數據卷都不會(huì )被刪除的。
4)不能使用docker export、save、cp等命令來(lái)備份數據卷的內容,因為數據卷是存在于鏡像之外的。備份的方法可以是創(chuàng )建一個(gè)新容器,掛載數據卷容器,同時(shí)掛載一個(gè)本地目錄,
   然后把遠程數據卷容器的數據卷通過(guò)備份命令備份到映射的本地目錄里面。如下:
   # docker run -rm --volumes-from DATA -v $(pwd):/backup busybox tar cvf /backup/backup.tar /data
5)也可以把一個(gè)本地主機的目錄當做數據卷掛載在容器上,同樣是在docker run后面跟-v參數,不過(guò)-v后面跟的不再是單獨的目錄了,它是[host-dir]:[container-dir]:[rw|ro]這樣格式的,
   host-dir是一個(gè)絕對路徑的地址,如果host-dir不存在,則docker會(huì )創(chuàng )建一個(gè)新的數據卷,如果host-dir存在,但是指向的是一個(gè)不存在的目錄,則docker也會(huì )創(chuàng )建該目錄,然后使用該目錄做數據源。
    
Docker Volume數據卷可以實(shí)現:
1)繞過(guò)“拷貝寫(xiě)”系統,以達到本地磁盤(pán)IO的性能,(比如運行一個(gè)容器,在容器中對數據卷修改內容,會(huì )直接改變宿主機上的數據卷中的內容,所以是本地磁盤(pán)IO的性能,而不是先在容器中寫(xiě)一份,最后還要將容器中的修改的內容拷貝出來(lái)進(jìn)行同步。)
2)繞過(guò)“拷貝寫(xiě)”系統,有些文件不需要在docker commit打包進(jìn)鏡像文件。
3)數據卷可以在容器間共享和重用數據
4)數據卷可以在宿主和容器間共享數據
5)數據卷數據改變是直接修改的
6)數據卷是持續性的,直到?jīng)]有容器使用它們。即便是初始的數據卷容器或中間層的數據卷容器刪除了,只要還有其他的容器使用數據卷,那么里面的數據都不會(huì )丟失。
  
Docker數據持久化:
容器在運行期間產(chǎn)生的數據是不會(huì )寫(xiě)在鏡像里面的,重新用此鏡像啟動(dòng)新的容器就會(huì )初始化鏡像,會(huì )加一個(gè)全新的讀寫(xiě)入層來(lái)保存數據。
如果想做到數據持久化,Docker提供數據卷(Data volume)或者數據容器卷來(lái)解決問(wèn)題,另外還可以通過(guò)commit提交一個(gè)新的鏡像來(lái)保存產(chǎn)生的數據。

一、創(chuàng )建一個(gè)數據卷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
如下為容器添加一個(gè)數據卷,并將容器名改為data。這個(gè)數據卷在容器里的目錄是/opt/data
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/ubuntu    latest              0ef2e08ed3fa        2 weeks ago         130 MB
[root@localhost ~]# docker run --name data -v /opt/data -t -i docker.io/ubuntu /bin/bash
root@2b9aebcf6ce8:/# cd /opt/data/
root@2b9aebcf6ce8:/opt/data# ls
root@2b9aebcf6ce8:/opt/data# echo "123" > 123
root@2b9aebcf6ce8:/opt/data# echo "123123" > 123123
root@2b9aebcf6ce8:/opt/data# ls
123  123123
[root@localhost volumes]# docker ps
CONTAINER ID        IMAGE               COMMAND               CREATED             STATUS              PORTS                     NAMES
2b9aebcf6ce8        docker.io/ubuntu    "/bin/bash"           49 seconds ago      Up 48 seconds                                 data
在宿主機上,查看對應上面的那個(gè)數據卷的目錄路徑:
[root@localhost ~]# docker inspect data|grep /var/lib/docker/volumes
                "Source": "/var/lib/docker/volumes/89d6562b9c1fe10dd21707cb697a5d481b3c1b000a69b762f540fa826a16972a/_data",
[root@localhost ~]# ls /var/lib/docker/volumes/89d6562b9c1fe10dd21707cb697a5d481b3c1b000a69b762f540fa826a16972a/_data
123  123123
[root@localhost ~]# echo "asdhfjashdfjk" >> /var/lib/docker/volumes/89d6562b9c1fe10dd21707cb697a5d481b3c1b000a69b762f540fa826a16972a/_data/123
[root@localhost ~]#
root@2b9aebcf6ce8:/opt/data# ls
123  123123
root@2b9aebcf6ce8:/opt/data# cat 123
123
asdhfjashdfjk

二、掛載宿主機文件或目錄到容器數據卷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
可以直接掛載宿主機文件或目錄到容器里,可以理解為目錄映射,這樣就可以讓所有的容器共享宿主機數據,從而只需要改變宿主機的數據源就能夠影響到所有的容器數據。
注意:
-v后面的映射關(guān)系是"宿主機文件/目錄:容器里對應的文件/目錄",其中,宿主機上的文件/目錄是要提前存在的,容器里對應的文件/目錄會(huì )自動(dòng)創(chuàng )建。
數據卷權限:
掛載的數據默認為可讀寫(xiě)權限。
但也可以根據自己的需求,將容器里掛載共享的數據設置為只讀,這樣數據修改就只能在宿主機上操作。如下實(shí)例:
1)掛載宿主機文件到容器上
[root@localhost ~]# cat /etc/web.list
192.168.1.100
192.168.1.101
192.168.1.103
[root@localhost ~]# docker run -t -i --name test -v /etc/web.list:/etc/web.list:ro docker.io/centos /bin/bash
[root@e21a3fefa3ae /]# cat /etc/web.list
192.168.1.100
192.168.1.101
192.168.1.103
[root@e21a3fefa3ae /]# echo "192.168.1.115" >> /etc/web.list
bash: /etc/web.list: Read-only file system
[root@e21a3fefa3ae /]#
  
在宿主機上修改共享數據
[root@localhost ~]# echo "192.168.1.115" >> /etc/web.list
[root@localhost ~]#
  
[root@e21a3fefa3ae /]# cat /etc/web.list
192.168.1.100
192.168.1.101
192.168.1.103
192.168.1.115
2)掛載宿主機目錄到容器上
[root@localhost ~]# mkdir /var/huanqiupc
[root@localhost ~]# echo "test" > /var/huanqiupc/test
[root@localhost ~]# echo "test1" > /var/huanqiupc/test1
[root@localhost ~]# docker run -t -i --name hqsb -v /var/huanqiupc:/opt/huantime docker.io/centos /bin/bash
[root@87cf93ce46a9 /]# cd /opt/huantime/
[root@87cf93ce46a9 huantime]# ls
test  test1
[root@87cf93ce46a9 huantime]# cat test
test
[root@87cf93ce46a9 huantime]# cat test1
test1
[root@87cf93ce46a9 huantime]# echo "1231" >>test
[root@87cf93ce46a9 huantime]# echo "44444" >>test1
宿主機上查看
[root@localhost ~]# cat /var/huanqiupc/test
test
1231
[root@localhost ~]# cat /var/huanqiupc/test1
test1
44444
3)掛載多個(gè)目錄
[root@localhost ~]# mkdir /opt/data1 /opt/data2
[root@localhost ~]# echo "123456" > /opt/data1/test1
[root@localhost ~]# echo "abcdef" > /opt/data2/test2
[root@localhost ~]# docker run --name data -v /opt/data1:/var/www/data1 -v /opt/data2:/var/www/data2:ro -t -i docker.io/ubuntu /bin/bash
root@cf2d57b9bee1:/# ls /var/www/data1
test1
root@cf2d57b9bee1:/# ls /var/www/data2
test2
root@cf2d57b9bee1:/# cat /var/www/data1/test1
123456
root@cf2d57b9bee1:/# cat /var/www/data2/test2
abcdef
root@cf2d57b9bee1:/# echo "date1" >> /var/www/data1/test1
root@cf2d57b9bee1:/# echo "date2" >> /var/www/data2/test2
bash: /var/www/data2/test2: Read-only file system
root@cf2d57b9bee1:/#

三、創(chuàng )建數據卷容器
啟動(dòng)一個(gè)名為xqsj_Container容器,此容器包含兩個(gè)數據卷/var/volume1和/var/volume2(這兩個(gè)數據卷目錄是在容器里的,容器創(chuàng )建的時(shí)候會(huì )自動(dòng)生成這兩目錄)

1
2
3
4
5
6
7
8
9
10
注意一個(gè)細節:
下面的創(chuàng )建命令中,沒(méi)有加-t和-i參數,所以這個(gè)容器創(chuàng )建好之后是登陸不了的!
-i:表示以“交互模式”運行容器
-t:表示容器啟動(dòng)后會(huì )進(jìn)入其命令行
[root@linux-node2 ~]# docker run -v /var/volume1 -v /var/volume2 --name xqsj_Container centos /bin/bash
[root@linux-node2 ~]#
所以要想創(chuàng )建容器后能正常登陸,就需要添加上面兩個(gè)參數
[root@localhost ~]# docker run -t -i -v /var/volume1 -v /var/volume2 --name xqsj_Container centos /bin/bash
[root@73a34f3c1cd9 /]#

查看宿主機上與數據卷對應的目錄路徑:

1
2
3
4
[root@localhost ~]# docker inspect xqsj_Container|grep /var/lib/docker/volumes
                "Source": "/var/lib/docker/volumes/b8d2e5bcadf2550abd36ff5aa544c721a45464a4406fb50979815de773086627/_data",
                "Source": "/var/lib/docker/volumes/a34fa3a0a7a2f126b0d30a32b1034f20917ca7bd0dda346014d768b5ebb68f6b/_data",
由上面命令結果可以查到,兩個(gè)數據卷/var/volume1/var/volume2下的數據在/var/lib/docker/volumes/下對于的兩個(gè)目錄的_data下面

創(chuàng )建App_Container容器,掛載xqsj_Container容器中的數據卷
[root@linux-node2 ~]# docker run -t -i --rm --volumes-from xqsj_Container --name App_Container centos /bin/bash
[root@b9891bcdfed0 /]# ls /var/volume1                           //發(fā)現這兩個(gè)數據卷都存在
[root@b9891bcdfed0 /]# ls /var/volume2
[root@b9891bcdfed0 /]# echo "this is volume1" > /var/volume1/test1
[root@b9891bcdfed0 /]# echo "this is volume2" > /var/volume1/test2

可以再創(chuàng )建一個(gè)容器,掛載App_Container中從xqsj_Container掛載的數據卷。當然也可以直接掛載初始的xqsj_Container容器數據卷
[root@linux-node2 ~]# docker run -t -i --rm --volumes-from App_Container --name LastApp_Container centos /bin/bash
[root@b4c27e360614 /]# ls /var/volume1
test1
[root@b4c27e360614 /]# ls /var/volume2
test2
[root@b4c27e360614 /]# cat /var/volume1/test1
this is volume1
[root@b4c27e360614 /]# cat /var/volume2/test2
this is volume2

即便是刪除了初始的數據卷容器xqsj_Container,或是刪除了其它容器,但只要是有容器在使用該數據卷,那么它里面的數據就不會(huì )丟失?。ǔ鞘菦](méi)有容器在使用它們)

四、備份數據卷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
$ sudo docker run --rm --volumes-from test -v $(pwd):/backup ubuntu:14.04 tar cvf /backup/test.tar /test
tar: Removing leading `/' from member names
/test/
/test/b
/test/d
/test/c
/test/a
  
以上命令表示:
啟動(dòng)一個(gè)新的容器并且從test容器中掛載卷,然后掛載當前目錄到容器中為backup,并備份test卷中所有的數據為test.tar,執行完成之后刪除容器--rm,此時(shí)備份就在當前的目錄下,名為test.tar。
注意:后面的/test是數據卷的目錄路徑(即數據卷創(chuàng )建時(shí)在容器里的路徑)
  
$ ls
宿主機當前目錄下產(chǎn)生了test卷的備份文件test.tar
  
---------------------------------------------看看下面的一個(gè)實(shí)例---------------------------------------------
先創(chuàng )建一個(gè)容器wang,包含兩個(gè)數據卷/var/volume1/var/volume2(這兩個(gè)目錄是在容器里的數據卷路徑)
[root@localhost ~]# docker run -t -i -v /var/volume1 -v /var/volume2 --name wang docker.io/centos /bin/bash
[root@83eb43492ae7 /]#
  
根據Docker的數據持久化之數據卷容器可知,上面創(chuàng )建的wang數據卷容器掛載了/var/volume1/var/volume2兩個(gè)目錄
然后在數據卷里寫(xiě)些數據,以供測試。
[root@83eb43492ae7 /]# cd /var/volume1
[root@83eb43492ae7 volume1]# echo "test1" > test1
[root@83eb43492ae7 volume1]# echo "test11" > test11
[root@83eb43492ae7 volume1]# echo "test111" > test111
[root@83eb43492ae7 volume1]# ls
test1  test11  test111
[root@83eb43492ae7 volume1]# cd ../volume2
[root@83eb43492ae7 volume2]# echo "test2" > test2
[root@83eb43492ae7 volume2]# echo "test22" > test22
[root@83eb43492ae7 volume2]# echo "test222" > test222
[root@83eb43492ae7 volume2]# ls
test2  test22  test222
[root@83eb43492ae7 volume2]#
  
然后進(jìn)行這兩個(gè)數據卷的備份
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND               CREATED             STATUS              PORTS                     NAMES
83eb43492ae7        docker.io/centos    "/bin/bash"           2 minutes ago       Up 2 minutes                                  wang
  
  
現在開(kāi)始進(jìn)行數據卷的備份操作:
為了利用數據卷容器備份,使用--volumes-from標記來(lái)創(chuàng )建一個(gè)加載wang容器卷的容器,并從主機掛載當前目錄到容器的/backup目錄。并備份wang卷中的數據,執行完成之后刪除容器--rm,此時(shí)備份就在當前的目錄下了。
  
1)備份wang容器中的/var/volume1數據卷數據<strong>(注意下面:命令中的-i和-t這兩個(gè)參數加不加都可以;--rm加上,備份后就會(huì )自動(dòng)刪除這個(gè)容器,如果不加這個(gè)--rm參數,那么備份后的容器就會(huì )保留,docker ps -a就會(huì )查看到)</strong>
[root@localhost ~]# docker run -i -t --rm --volumes-from wang -v $(pwd):/backup docker.io/centos tar cvf /backup/backup1.tar /var/volume1
tar: Removing leading `/' from member names
/var/volume1/
/var/volume1/test1
/var/volume1/test11
/var/volume1/test111
  
2)備份wang容器中的/var/volume2數據卷數據
[root@localhost ~]# docker run -i -t --rm --volumes-from wang -v $(pwd):/backup docker.io/centos tar cvf /backup/backup2.tar /var/volume2
tar: Removing leading `/' from member names
/var/volume2/
/var/volume2/test2
/var/volume2/test22
/var/volume2/test222
  
3)備份wang容器中的/var/volume1/var/volume2數據卷數據
[root@localhost ~]# docker run -i -t --rm --volumes-from wang -v $(pwd):/backup docker.io/centos tar cvf /backup/backup.tar /var/volume1 /var/volume2
tar: Removing leading `/' from member names
/var/volume1/
/var/volume1/test1
/var/volume1/test11
/var/volume1/test111
/var/volume2/
/var/volume2/test2
/var/volume2/test22
/var/volume2/test222
[root@localhost ~]# ls
anaconda-ks.cfg  a.py  backup1.tar  backup2.tar  backup.tar  mkimage-yum.sh  pipework  var  wang.tar
  
這樣,數據卷容器中的數據就備份完成了. 簡(jiǎn)言之就是:
先創(chuàng )建一個(gè)容器,并掛載要備份的容器數據卷,再掛載數據卷(pwd):/backup目錄到容器/bakcup,在容器中執行備份/data目錄到/backup,也就是備份到宿主機$(pwd):/backup目錄。

五、恢復或遷移數據卷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
可以恢復給同一個(gè)容器或者另外的容器,新建容器并解壓備份文件到新的容器數據卷
$ sudo docker run -t -i -d -v /test --name test4 ubuntu:14.04  /bin/bash
$ sudo docker run --rm --volumes-from test4 -v $(pwd):/backup ubuntu:14.04 tar xvf /backup/test.tar -C /
恢復之前的文件到新建卷中,執行完后自動(dòng)刪除容器 test/ test/b test/d test/c test/a
  
-----------------------------接著(zhù)上面的實(shí)例進(jìn)行數據卷恢復操作--------------------------
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND               CREATED             STATUS              PORTS                     NAMES
531c9d8adf4c        docker.io/centos    "/bin/bash"           2 minutes ago       Up 44 seconds                                 wang
  
1)恢復數據給同一個(gè)容器
測了測試效果,先刪除數據卷(注意:數據卷目錄刪除不了,只能刪除其中的數據。)
[root@localhost ~]# docker attach wang
[root@531c9d8adf4c ~]# ls /var/volume1
test1  test11  test111
[root@531c9d8adf4c ~]# ls /var/volume2
test2  test22  test222
[root@531c9d8adf4c ~]# rm -rf /var/volume1 /var/volume2
rm: cannot remove '/var/volume1': Device or resource busy 
rm: cannot remove '/var/volume2': Device or resource busy
[root@531c9d8adf4c ~]# ls /var/volume2
[root@531c9d8adf4c ~]# ls /var/volume1
  
現在進(jìn)行數據卷恢復,恢復數據卷中的所有數據:
[root@localhost ~]# ls
anaconda-ks.cfg  a.py  backup1.tar  backup2.tar  backup.tar  mkimage-yum.sh  pipework  var  wang.tar
  
注意-C后面的路徑,這個(gè)路徑表示將數據恢復到容器里的路徑。
命令中用"/",即表示將backup.tar中的數據解壓到容器的/路徑下。后面跟什么路徑,就解壓到這個(gè)路徑下。因此這里用"/"
[root@localhost ~]# docker run --rm --volumes-from wang -v $(pwd):/backup docker.io/centos tar xvf /backup/backup.tar -C /
var/volume1/
var/volume1/test1
var/volume1/test11
var/volume1/test111
var/volume2/
var/volume2/test2
var/volume2/test22
var/volume2/test222
  
再次到容器里查看,發(fā)現數據卷里的數據已經(jīng)恢復了
[root@531c9d8adf4c ~]# ls /var/volume1
test1  test11  test111
[root@531c9d8adf4c ~]# ls /var/volume2
test2  test22  test222
  
2)恢復數據給另外的容器,新建容器并解壓備份文件到新的容器數據卷
即新建一個(gè)容器huihui,將上面備份的數據卷數據恢復到這個(gè)新容器里。
[root@localhost ~]# docker run -t -i -v /var/volume1 -v /var/volume2 --name huihui docker.io/centos /bin/bash
[root@f6ff380e0b7f var]# ls /var/volume1
[root@f6ff380e0b7f var]# ls /var/volume2
  
[root@localhost ~]# ls
anaconda-ks.cfg  a.py  backup1.tar  backup2.tar  backup.tar  mkimage-yum.sh  pipework  var  wang.tar
  
[root@localhost ~]# docker run --rm --volumes-from huihui -v $(pwd):/backup docker.io/centos tar xvf /backup/backup.tar -C /
var/volume1/
var/volume1/test1
var/volume1/test11
var/volume1/test111
var/volume2/
var/volume2/test2
var/volume2/test22
var/volume2/test222
  
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND               CREATED             STATUS              PORTS                     NAMES
813afe297b60        docker.io/centos    "/bin/bash"           17 seconds ago      Up 16 seconds                                 huihui
  
  
這里注意一下:
新容器創(chuàng )建時(shí)掛載的數據卷路徑最好是和之前備份的數據卷路徑一致
如下:
1)新建容器掛載的數據卷只是備份數據卷的一部分,那么恢復的時(shí)候也只是恢復一部分數據。如下,新容器創(chuàng )建時(shí)只掛載/var/volume1
[root@localhost ~]# docker run -t -i -v /var/volume1 --name huihui docker.io/centos /bin/bash
[root@12dd8d742259 /]# ls /var/volume1/
[root@12dd8d742259 /]# ls /var/volume2
ls: cannot access /var/volume2: No such file or directory
  
[root@localhost ~]# docker run --rm --volumes-from huihui -v $(pwd):/backup docker.io/centos tar xvf /backup/backup.tar -C /
var/volume1/
var/volume1/test1
var/volume1/test11
var/volume1/test111
var/volume2/
var/volume2/test2
var/volume2/test22
var/volume2/test222
[root@localhost ~]#
  
查看容器,發(fā)現只恢復了/var/volume1的數據,/var/volume2數據沒(méi)有恢復,因為沒(méi)有容器創(chuàng )建時(shí)沒(méi)有掛載這個(gè)。
[root@localhost ~]# docker run -t -i -v /var/volume1 --name huihui docker.io/centos /bin/bash
[root@12dd8d742259 /]# ls /var/volume1/
[root@12dd8d742259 /]# ls /var/volume2
ls: cannot access /var/volume2: No such file or directory
  
2)新容器創(chuàng )建時(shí)只掛載/var/volume2
[root@localhost ~]# docker run -t -i -v /var/volume2 --name huihui docker.io/centos /bin/bash
[root@da3a3d2c95e0 /]# ls /var/volume2/
[root@da3a3d2c95e0 /]# ls /var/volume1
ls: cannot access /var/volume1: No such file or directory
  
[root@localhost ~]# docker run --rm --volumes-from huihui -v $(pwd):/backup docker.io/centos tar xvf /backup/backup.tar -C /
var/volume1/
var/volume1/test1
var/volume1/test11
var/volume1/test111
var/volume2/
var/volume2/test2
var/volume2/test22
var/volume2/test222
[root@localhost ~]#
  
[root@da3a3d2c95e0 /]# ls /var/volume1
ls: cannot access /var/volume1: No such file or directory
[root@da3a3d2c95e0 /]# ls /var/volume2/
test2  test22  test222
  
3)如果新容器創(chuàng )建時(shí)掛載的數據卷目錄跟之前備份的路徑不一致
[root@localhost ~]# docker run -t -i -v /var/huihui --name huihui docker.io/centos /bin/bash
[root@9bad9b3bde71 /]# ls /var/huihui/
[root@9bad9b3bde71 /]#
  
如果解壓時(shí)-C后面跟的路徑不是容器掛載的容器,那么數據恢復不了,如下
[root@localhost ~]# docker run --rm --volumes-from huihui -v $(pwd):/backup docker.io/centos tar xvf /backup/backup.tar -C /
var/volume1/
var/volume1/test1
var/volume1/test11
var/volume1/test111
var/volume2/
var/volume2/test2
var/volume2/test22
var/volume2/test222
  
發(fā)現容器內數據沒(méi)有恢復
[root@9bad9b3bde71 /]# ls /var/huihui/
[root@9bad9b3bde71 /]#
  
但是如果解壓時(shí)-C后面跟的是容器掛載的路徑,數據就能正?;謴?/code>
[root@localhost ~]# docker run --rm --volumes-from huihui -v $(pwd):/backup docker.io/centos tar xvf /backup/backup.tar -C /var/huihui
var/volume1/
var/volume1/test1
var/volume1/test11
var/volume1/test111
var/volume2/
var/volume2/test2
var/volume2/test22
var/volume2/test222
[root@localhost ~]#
  
發(fā)現容器內數據已經(jīng)恢復了
[root@9bad9b3bde71 /]# ls /var/huihui/
var
[root@9bad9b3bde71 /]# ls /var/huihui/var/
volume1  volume2
[root@9bad9b3bde71 /]# ls /var/huihui/var/volume1
test1  test11  test111
[root@9bad9b3bde71 /]# ls /var/huihui/var/volume2
test2  test22  test222

六、刪除數據卷

1
2
3
4
5
6
7
8
Volume 只有在下列情況下才能被刪除:
1)docker rm -v刪除容器時(shí)添加了-v選項
2)docker run --rm運行容器時(shí)添加了--rm選項
否則,會(huì )在/var/lib/docker/volumes目錄中遺留很多不明目錄。
  
可以使用下面方式找出,然后刪除_data目錄下的數據文件
[root@localhost volumes]# docker inspect huihui|grep /var/lib/docker/volumes
                "Source": "/var/lib/docker/volumes/97aa95420e66de20abbe618fad8d0c1da31c54ce97e32a3892fa921c7942d42b/_data",
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Dcoker 入門(mén)之存儲卷
docker掛載本地目錄的方法總結:
Docker基礎:數據卷技術(shù)介紹
docker,數據卷(Data Volumes)
如何恢復docker容器數據
docker將數據從宿主機掛載到容器的方式(一)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久