其他分享
首页 > 其他分享> > docker数据管理

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