docker数据管理
作者:互联网
docker数据管理
数据卷
创建数据卷
ubuntu@ubuntu18:/tmp/dockertmp$ docker volume create -d local test555
test555
ubuntu@ubuntu18:/tmp/dockertmp$ sudo ls -al /var/snap/docker/common/var-lib-docker/volumes/
总用量 40
drwx------ 4 root root 4096 2月 20 14:01 .
drwx--x--x 15 root root 4096 2月 20 10:49 ..
-rw------- 1 root root 32768 2月 20 14:01 metadata.db
drwxr-xr-x 3 root root 4096 2月 20 14:00 test
drwxr-xr-x 3 root root 4096 2月 20 14:01 test555
绑定数据卷
ubuntu@ubuntu18:/tmp/dockertmp$ docker run -d -P --name test557 -v /var/snap/docker/common/var-lib-docker/volumes/test555:/tmp/test555 flag:0.1 /bin/sh -c "while true; do echo hello world; sleep 2; done"
2666be17e45b6c9d0e56cd16fbea9071878ee5b28f5e6ae9a7653c50002097b7
ubuntu@ubuntu18:/tmp/dockertmp$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2666be17e45b flag:0.1 "/bin/sh -c 'while t…" 5 seconds ago Up 4 seconds test557
32f4ce2760f6 flag:0.1 "/bin/sh -c 'while t…" 3 hours ago Up 3 hours test5
ubuntu@ubuntu18:/tmp/dockertmp$ docker exec -it test557 /bin/bash
root@2666be17e45b:/# ls -al /tmp
total 12
drwxrwxrwt 1 root root 4096 Feb 20 06:09 .
drwxr-xr-x 1 root root 4096 Feb 20 06:09 ..
drwxr-xr-x 3 root root 4096 Feb 20 06:01 test555
root@2666be17e45b:/#
数据卷容器
创建一个数据卷容器
ubuntu@ubuntu18:/tmp/dockertmp$ docker run -it -v /dbdata --name dadata ubuntu:18.04
root@b1510d0f6822:/# ls /
bin dbdata etc lib media opt root sbin sys usr
boot dev home lib64 mnt proc run srv tmp var
root@b1510d0f6822:/#
创建db1容器并从dadata容器中挂载数据卷
ubuntu@ubuntu18:/tmp/dockertmp$ docker run -it --volumes-from dadata --name db1 ubuntu:18.04
root@4e4fe0554c9c:/# ls
bin dbdata etc lib media opt root sbin sys usr
boot dev home lib64 mnt proc run srv tmp var
root@4e4fe0554c9c:/# cd /dbdata/
root@4e4fe0554c9c:/dbdata# ls
尝试在数据卷容器中写入文件
ubuntu@ubuntu18:/$ docker exec -it dadata /bin/bash
root@b1510d0f6822:/# ls
bin dbdata etc lib media opt root sbin sys usr
boot dev home lib64 mnt proc run srv tmp var
root@b1510d0f6822:/# cd dbdata/
root@b1510d0f6822:/dbdata# ls
挂载者db1中更新内容
root@b1510d0f6822:/dbdata# touch okokokok
root@b1510d0f6822:/dbdata#
root@4e4fe0554c9c:/dbdata# ls
okokokok
root@4e4fe0554c9c:/dbdata#
利用数据卷容器迁移数据
1.备份
docker run --volumes-from dbdata -v $(pwd):/backup --name worker1 centos tar cvf /backup/backup.tar /dbdata
2.恢复
如果要将数据恢复到一个容器,首先创建一个带有数据卷的容器dbdata2
[root@localhost ~] docker run -v /dbdata --name dbdata2 centos /bin/bash
然后创建另一个新的容器,挂载dbdata2的容器,并使用tar 解压备份文件到所挂载的容器卷中:
[root@localhost ~] docker run --volumes-from dbdata2 -v $(pwd):/backup busybox tar xvf /backup/backup.tar
偷一个月亮
发布了58 篇原创文章 · 获赞 7 · 访问量 3402
私信
关注
标签:tmp,bin,数据管理,ubuntu,dbdata,docker,root 来源: https://blog.csdn.net/yiqiushi4748/article/details/104412460