ReactNative技术精讲与高质量上线APP开发

创建数据卷

复制代码

[root@bogon df_test1]# docker run --privileged=true -it -v /usr/java/datas:/data centos /bin/bash #--privileged=true是允许运行的容器加特权拥有编辑操作等
[root@23533d8e59c6 /]# cd data
[root@23533d8e59c6 data]# touch a.txt
[root@23533d8e59c6 data]# echo "i am jiaxianseng" >>a.txt
[root@23533d8e59c6 data]# cat a.txt
i am jiaxianseng
[root@23533d8e59c6 data]# [root@bogon df_test1]# 
[root@bogon df_test1]# cd /usr/java/datas
[root@bogon datas]# ll
总用量 4
-rw-r--r--. 1 root root 17 1月   2 22:52 a.txt
[root@bogon datas]# cat a.txt
i am jiaxianseng

复制代码

  3、添加权限之可读:

[root@bogon datas]# docker run -it -v /usr/java/datas:/data:ro --name cct8 centos /bin/bash
[root@91ee8587eba5 /]# cd /data
[root@91ee8587eba5 data]# ech "www.baidu.com" >> a.txt
bash: a.txt: Permission denied    #但是可以通过vi打开

  4、通过Dockerfile创建数据卷

FROM centos
VOLUME ["/usr/java/datas","/data"]
CMD /bin/bash

 六、数据卷容器

  1、什么是数据卷容器

  命名的容器挂载数据卷,其他容器通过挂载这个容器实现数据共享,挂载数据卷的容器叫做数据卷容器

  2、挂载数据卷容器的方法

  docker run --volumes-from [CONTAINER NAME]

复制代码

[root@bogon datas]# ll   #当期那目录有a.txt文件
总用量 4
-rw-r--r--. 1 root root 17 1月   2 22:52 a.txt
[root@bogon datas]# pwd
/usr/java/datas
[root@bogon datas]# docker run -it -v /usr/java/datas:/dbdata --name dbdata centos    #创建数据卷容器
[root@da12a0d3bf2f /]# exit
exit
[root@bogon datas]# docker run -it --volumes-from dbdata --name db1 centos       #创建两个容器并挂载到dbdata容器中的数据卷
[root@ae1156049856 /]# [root@bogon datas]# 
[root@bogon datas]# docker run -it --volumes-from dbdata --name db2 centos
[root@4b857926f794 /]# ll
total 28
-rw-r--r--.   1 root root 12076 Dec  5 01:37 anaconda-post.log
lrwxrwxrwx.   1 root root     7 Dec  5 01:36 bin -> usr/bin
drwxr-xr-x.   2 root root    18 Jan  2 14:52 dbdata
drwxr-xr-x.   5 root root   360 Jan  3 13:09 dev
drwxr-xr-x.   1 root root    62 Jan  3 13:09 etc
drwxr-xr-x.   2 root root     6 Apr 11  2018 home
lrwxrwxrwx.   1 root root     7 Dec  5 01:36 lib -> usr/lib
lrwxrwxrwx.   1 root root     9 Dec  5 01:36 lib64 -> usr/lib64
drwxr-xr-x.   2 root root     6 Apr 11  2018 media
drwxr-xr-x.   2 root root     6 Apr 11  2018 mnt
drwxr-xr-x.   2 root root     6 Apr 11  2018 opt
dr-xr-xr-x. 228 root root     0 Jan  3 13:09 proc
dr-xr-x---.   2 root root  4096 Dec  5 01:37 root
drwxr-xr-x.   1 root root    20 Jan  3 13:09 run
lrwxrwxrwx.   1 root root     8 Dec  5 01:36 sbin -> usr/sbin
drwxr-xr-x.   2 root root     6 Apr 11  2018 srv
dr-xr-xr-x.  13 root root     0 Jan  3 12:42 sys
drwxrwxrwt.   7 root root  4096 Dec  5 01:37 tmp
drwxr-xr-x.  13 root root  4096 Dec  5 01:36 usr
drwxr-xr-x.  18 root root  4096 Dec  5 01:36 var
[root@4b857926f794 /]# cd /    
[root@4b857926f794 /]# cd dbdata 
[root@4b857926f794 dbdata]# ll                
total 4    
-rw-r--r--. 1 root root 17 Jan  2 14:52 a.txt
[root@4b857926f794 dbdata]# cat a.txt                              #此时在任意一个容器中编辑数据,其他容器都能看的到,这是数据卷容器中的a.txt文件                        
i am jiaxianseng

复制代码

即使删了数据卷容器,挂载的容器数据依然存在

复制代码

[root@bogon datas]# docker rm dbdata
dbdata
[root@bogon datas]# docker attach db1
[root@ae1156049856 /]# ll /
[root@ae1156049856 /]# cd dbdata
[root@ae1156049856 dbdata]# ll
total 4
-rw-r--r--. 1 root root 17 Jan  2 14:52 a.txt

复制代码

七、数据卷的备份和还原

  1、数据卷备份方法

  docker run --volumes-from [container name] -v$(pwd):/backup centos

  tar cvf /backup/backup.tar [container data volum

复制代码

[root@bogon datas]# docker run -it -v /usr/java/datas:/dbdata --name cct1 centos
[root@713cdcf2c026 /]# exit
exit
[root@bogon datas]# docker run --privileged=true --volumes-from cct1 -v /backup:/backup --name cct2 centos tar cvf /backup/cct1.tar /dbdata
/dbdata/
/dbdata/a.txt
tar: Removing leading `/' from member names
[root@bogon datas]# cd /backup
[root@bogon backup]# ll
总用量 12
-rw-r--r--. 1 root root 10240 1月   3 21:32 cct1.tar

复制代码

  2、数据卷还原方法

  docker run --volumes-from [container name] -v $(pwd):/backup centos

  tar xvf /backup/backup.tar [container data volume]

猜你喜欢

转载自blog.csdn.net/wei496693/article/details/86674443