李浅

导航

仓库 数据卷迁移

我用的是daocloud的加速器  免费注册的

docker login daocloud.io

账号:密码 登录即可

docker search mysql

可以搜索库内关于 mysql的镜像

docker pull  mysql

将远端库内的mysql镜像加载到本地的库中 默认的tag 是latest

docker tag test/ubuntu:v1.0  ubuntu:12.08

更改本地镜像库的的tag和repository     test/ubuntu:v1.0(要更改的目标)       ubuntu:12.08(更改后的结果)他们共享一个ID

 

 创建私有仓库没懂,回头再看

 

数据管理 在使用docker的过程中,需要查看容器内的英语产生的数据,或者需要备份数据,再或者多个容器的数据共享。这必然涉及书籍管理

数据卷 是一个可供容器使用的特殊目录,特点

多个容器可以共享,数据卷的修改可以立马生效,数据卷更新不影响容器,卷会一直存在直到没有容器再使用

创建一个数据卷

 

 如下为容器添加一个数据卷,并将容器名改为data。这个数据卷在容器里的目录是/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
 
在宿主机上,查看对应上面的那个数据卷的目录路径:
[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
asdhfjashdfj

 创建一个数据卷容器dbdata    

 docker run -it -v /dbdata --name dbdata ubuntu

  这条命令的意思是将数据卷挂载到 ubuntu容器内的/dbdata目录下

 docker run -it --volumes-from  dbdata --name db1 ubuntu

 docker run -it --volumes-from  dbdata --name db2 ubuntu

将dbdata数据卷共享于三个容器 一个内容改变其他的也将改变 ,数据同步

数据备份

docker run --rm --volumes-from dbdata -v $(pwd):/backup ubuntu tar cvf /backup/dbdata.tar  /dbdata

启动一个新的容器并且从dbdata容器中挂载卷,然后挂载当前目录到容器中为backup,并备份dbdata卷中所有的数据为dbdata.tar,执行完成之后删除容器--rm,此时备份就在当前的目录下,名为dbdata.tar
注意:后面的/test是数据卷的目录路径(即数据卷创建时在容器里的路径)
docker run -t -i -v /var/volume1 -v /var/volume2 --name wang docker.io/centos /bin/bash
创建一个数据卷 并挂载两个目录
为了利用数据卷容器备份,使用--volumes-from标记来创建一个加载wang容器卷的容器,并从主机挂载当前目录到容器的/backup目录。并备份wang卷中的数据,执行完成之后删除容器--rm,此时备份就在当前的目录下了。
docker run -i -t --rm --volumes-from wang -v $(pwd):/backup ubuntu:latest tar cvf /backup/backup1.tar /var/volume1
docker run -i -t --rm --volumes-from wang -v $(pwd):/backup ubuntu:latest tar cvf /backup/backup2.tar /var/volume2
简而言之就是先创建一个容器,并挂载要备份的容器数据卷,再挂载数据卷(pwd):/backup目录到容器/bakcup,在容器中执行备份/data目录到/backup,也就是备份到宿主机$(pwd):/backup目录
备份命令
run -i -t --rm --volumes-from wang -v $(pwd):/backup ubuntu:latest tar cvf /backup/backup1.tar /var/volume1
/var/volume1  这是要备份的数据卷容器的目录文件夹
ubuntu:latest  创建数据卷时用的镜像REPOSITORY + TAG
--volumes-from wang  要备份数据卷的 NAMES
tar cvf /backup/backup1.tar    备份后的文件格式
backup1.tar文件默认是保存在宿主机的当前目录下
 
进入容器内删除数据后进行恢复测试
docker run --rm --volumes-from wang -v $(pwd):/backup ubuntu:latest  tar xvf /backup/backup1.tar -C /
backup1.tar 必须在文件所在目录下执行备份命令
 -C /   这是要备份到数据卷容器wang内的路径  / 就是根目录   
 
当然也可以被分到其他容器里边
docker run -t -i -v /var/lizhuang1 -v /var/lizhuang2  --name huihui ubuntu:latest  /bin/bash
创建huihui容器
docker run --rm --volumes-from huihui -v $(pwd):/backup ubuntu:latest tar xvf /backup/backup1.tar -C /
将backup.tar导入到huihui容器内
备份包内的数据目录和导入容器的目录要同步,否则数据无法恢复
 
删除数据卷
 
 
docker volume ls 
查看本地数据卷卷
docker volume prune
删除全部数据卷
docker volume rm +卷ID
docker rm -vf huihui
将name为huihui的数据卷删除  
 
因工作上需要搞k8s,所以借机学习下docker。很多内容都转自于这个博主这里https://www.cnblogs.com/kevingrace/p/6238195.html
后边备份数据那有点乱,我就是草草记录下 自己能看懂就行   看官要是不明可以去那个博主看看,要比我专业的多。就酱

posted on 2018-12-28 15:15  李浅  阅读(338)  评论(0编辑  收藏  举报