0

Docker | 数据卷

 2 years ago
source link: https://ijayer.github.io/post/tech/devops/docker/20170503-data-volume/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

数据卷(Data Volume): 可供一个或多个容器使用的特殊目录,绕过UFS

  • Data Volume可在容器间共享和重用
  • 对Data Volume的修改立马生效
  • 对Data Volume的更新不影响镜像
  • Data Volume默认一直存在,即使容器被删除

Note:

  • Data Volume用法类似于Linux下对文件|目录进行mount

添加数据卷

# Usage
# docker run -v [HOST_PATH]:[CONTAINER_PATH] IMAGE [COMMAND] [ARG...]
# HOST_PATH:宿主机文件系统路径;CONTAINER_PATH:容器文件系统路径(路径都为绝对路径)
# -v:创建数据卷并挂载到容器,一次run可用多个-v,建立多个数据卷

$ docker run --name datavolume -it -d -v /data ubuntu:14.04 /bin/bash

删除数据卷

# Usage
# docker rm [OPTIONS] CONTAINER [CONTAINER...]
# 数据卷生命周期独立于容器,不随容器删除而删除
# 在删除容器时用:docker rm -v移除数据卷

$ docker rm -v datavolume 

挂载宿主机目录

# `-v`:  指定宿主机目录挂载到容器     
# `:ro`: docker默认数据卷权限为读写,`:ro`指定为只读  

$ docker run --name datavolume -v /home/data:/home/mongo/db ubuntu:14.04 /bin/bash

查看数据卷信息

# Usage     
# docker inspect [OPTIONS] Container_NAME|ID [NAME|ID...]    
$ docker inspect datavolume     

挂载本地文件作为数据卷

# `-v`: 亦可指定主机文件挂载到容器       
$ docker rum --rm -it -v ~/.bash_history:/.bash_history ubuntu14:04 /bin/bash

挂载数据卷容器

挂在数据卷容器主要用于容器间共享数据

# Usage
# --volumes-from list —>Mount volumes from the specified container(s) (default[])
# 创建容器时通过`--volumes-from`参数指定要挂载的数据卷容器
# 将datavolume容器的`/home/mongo/db`数据卷, 挂载到另一个容器中

$ docker run --name mydb -d --volumes-from datavolume ubuntu:14.04 /bin/bash

Note:

  • 数据卷容器间可以级联挂载
  • --volumes-from指定的数据卷容器在挂载时不需要保持运行状态

数据卷备份与恢复

# 备份mydb容器中的数据卷/home/mongo/db, 到宿主机目录下的backup.tar文件中    
$ docker run --name mybackup --rm --volumes-from mydb -v $(PWD):/home/back ubuntu:14.04 tar zcvf /home/backup/backup.tar.gz /home/mongo/db
# 恢复本地目录下的backup.tar.gz文件到mydb容器下的/home/mongo/db数据卷
$ docker run --rm --volumes-from mydb -v $(pwd):/backup ubuntu:14.04 tar zxvf /backup/backup.tar.gz

See Also

Thanks to the authors 🙂


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK