做网站要注意哪些方面,长沙网站优化价格,招聘网站企业招聘怎么做,昆明网站建设公司排名猫咪科技容器中的管理数据主要有两种方式#xff1a; 数据卷 #xff08;Data Volumes#xff09;#xff1a; 容器内数据直接映射到本地主机环境#xff1b; 数据 卷容器#xff08; Data Volume Containers#xff09;#xff1a; 使用特定容器维护数据卷 1.数据卷
数据卷…容器中的管理数据主要有两种方式 数据卷 Data Volumes 容器内数据直接映射到本地主机环境 数据 卷容器 Data Volume Containers 使用特定容器维护数据卷 1.数据卷
数据卷是一个供容器使用的特殊目录位于容器中。可将宿主机的目录挂载到数据卷上对数据卷的修改操作立刻可见并且更新数据不会影响镜像从而实现数据在宿主机与容器之间的迁移。数据卷的使用类似于 Linux 下对目录进行的 mount 操作
除了使用 volume 子命令来管理数据卷外还可以在创建容器时将主机的任意路径 挂载到容器内作为数据卷这种形式创建的数据卷称为绑定数据卷。在用 docker [container] run命令的时候可以使用 mount 选项来使用数据卷。 mount 项支持三种类型的数据卷包括
volume 普通数据卷映射到主机var/ lib /docke /volumes 路径下 bind 绑定数据卷映射到主机指定路径下 tmpfs 临时数据卷只存在于内存中
绑定数据卷如果挂载的路径在宿主机上不存在Docker 会自动创建该路径。
#创建一个 web1 容器作为数据卷容器
[rootDocker ~]# docker run --name web1 -v /var/www:/test1 -it centos:7 /bin/b[roota89b95b269bc /]# ls
anaconda-post.log dev home lib64 mnt proc run srv test1 usr
bin etc lib media opt root sbin sys tmp var
[roota89b95b269bc /]# echo I am test1 /test1/haha.txt
[roota89b95b269bc /]# exit
exit这里宿主机上的 /var/www 目录不存在Docker 则会自动创建这个目录 但仅限于是目录不是文件否则会报错
#返回宿主机检查 2.数据卷容器 如果需要在容器之间共享一些数据最简单的方法就是使用数据卷容器。数据卷容器是一个普通的容器专门提供数据卷给其他容器挂载使用
#创建一个 web2 容器作为数据卷容器
[rootDocker ~]# docker run --name web2 -v /test1 -v /test2 -it centos:7 /bin/bash
[rootce3ce76e3b7c /]# ls
anaconda-post.log dev home lib64 mnt proc run srv test1 tmp var
bin etc lib media opt root sbin sys test2 usr
[rootce3ce76e3b7c /]# echo this is test1 /test1/haha.txt
[rootce3ce76e3b7c /]# echo this is test2 /test2/haha.txt
[rootce3ce76e3b7c /]# exit
exit#使用 --volumes-from 来挂载 web2 容器中的数据卷到新的容器中
[rootDocker ~]# docker run -it --volumes-from web2 --name web3 centos:7 /bin/bash
[root049bca80ec53 /]# ls
anaconda-post.log dev home lib64 mnt proc run srv test1 tmp var
bin etc lib media opt root sbin sys test2 usr
[root049bca80ec53 /]# cat /test1/haha.txt
this is test1
[root049bca80ec53 /]# cat /test2/haha.txt
this is test23. 利用数据卷容器来迁移数据
可以利用数据卷容器对其中的数据卷进行备份、恢复以实现数据的迁移
#备份 web1 数据卷
# 建立容器并指定使用卷到要备份的容器
[rootDocker ~]# docker run --volumes-from web1 \
-v $(pwd):/backup --name woker1 centos:7 \ # 把当前目录挂载到容器中用于保存备份数据
tar zcf /backup/backup.tar /test1 # 备份数据到本地#验证备份文件
[rootDocker ~]# tar -tvf backup.tar
drwxr-xr-x root/root 0 2025-03-04 15:44 test1/
-rw-r--r-- root/root 11 2025-03-04 17:49 test1/haha.txt#传送备份文件到目标服务器
[rootDocker ~]# scp backup.tar 192.168.8.164:~
root192.168.8.164s password:
backup.tar 100% 10KB 7.2MB/s 00:00
#数据恢复
[rootcentos ~]# docker run --rm --volumes-from new_web -v $(pwd):/backup centos:7 \bash -c mkdir -p /data tar xvf /backup/backup.tar -C /data -m -p
test1/
test1/haha.txt
[rootcentos ~]#