005.Docker存储管理
2019-01-15 02:24:56来源:博客园 阅读 ()
一 Docker volume形态
- 默认,即无Docker volume
- Data volume (数据卷)
- data container(数据卷容器)
二 默认无volume
三 Data volume (数据卷)
3.1 -v挂载容器内目录
- 数据卷是目录或文件,而非没有格式化的磁盘(块设备)
- 数据卷可以在容器之间共享和重用
- 对数据卷的修改会立马生效
- 对数据卷的更新,不会影响镜像
- 数据卷默认会一直存在,即使容器被删除
- -d:后台进程;
- -p:映射端口,物理机端口:容器端口;
- -v:物理机文件夹:容器的目录(容器中目录如果不存在,会自动创建,如果存在,会覆盖掉),即将宿主机中的目录挂载到镜像中的目录。
1 root@docker:~# docker inspect b7 | grep -A11 "Mounts" 2 root@docker:~# echo "Hello web01!" >/webroot/index.html 3 root@docker:~# echo "Hello web02!" >/var/lib/docker/volumes/725d7d76ec8eb10f5730fe5663cb1d1eb7481efaa2a5a790343dca5d0557564a/_data/index.html
3.2 -v挂载文件
1 root@docker:~# docker run --rm -it --name centos7-01 -v ~/.bashrc:/root/.bashrc centos:7
四 docker的数据共享
4.1 docker容器与宿主机共享数据
1 docker cp [OPTIONS] CONTAINER:PATH LOCALPATH|- 2 docker cp [OPTIONS] LOCALPATH|- CONTAINER:PATH 3 root@docker:~# docker cp /root/.vimrc centos7-01:/root/ #从宿主机拷贝至容器 4 root@docker:~# docker cp centos7-01:/root/.vimrc /root/.vimrc_bak #从容器拷贝至宿主机
4.2 docker容器之间共享数据
1 root@docker:~# docker run -d -p 1010:80/tcp --name web03 -v /webroot:/usr/local/apache2/htdocs httpd 2 root@docker:~# docker run -d -p 2020:80/tcp --name web04 -v /webroot:/usr/local/apache2/htdocs httpd 3 root@docker:~# echo "This is share file!" >/webroot/index.html
4.2 docker容器与容器共享数据
五 data container(数据卷容器)
5.1 创建数据卷容器
1 root@docker:~# docker create --name sharefile01 -v /data:/usr/local/apache2/htdocs centos:7 2 root@docker:~# docker inspect sharefile01 | grep -A11 "Mounts"
5.2 引用数据卷容器
1 root@docker:~# docker run -d -p 3030:80/tcp --name web05 --volumes-from sharefile01 httpd 2 root@docker:~# docker run -d -p 4040:80/tcp --name web06 --volumes-from sharefile01 httpd 3 root@docker:~# echo "This is share file two!" >/data/index.html
六 volume管理
6.1 创建volume卷
1 root@docker:~# docker volume create --name data02 2 root@docker:~# docker volume inspect data02
6.2 使用volume卷
1 root@docker:~# docker run -d -p 5050:80/tcp --name web07 -v data02:/usr/local/apache2/htdocs httpd 2 root@docker:~# echo "Hello web07!" > /var/lib/docker/volumes/data02/_data/index.html
6.3 查看volume卷
1 root@docker:~# docker volume ls #查看所有volume卷 2 root@docker:~# docker volume ls -qf dangling=true #查看所有孤儿卷
6.4 删除volume卷
1 root@docker:~# docker volume rm 95704ae78c05261a46d2dc1f2bf872a8c3dc634817e7c0db53e7e6d40f2dc8ea 2 root@docker:~# docker volume rm $(docker volume ls -qf dangling=true) #删除孤儿卷
6.5 删除容器时删除 volume
1 root@docker:~# docker run -d -p 6060:80/tcp --name web08 -v /usr/local/apache2/htdocs httpd 2 root@docker:~# docker inspect web08
1 root@docker:~# docker rm -vf web08 2 root@docker:~# docker volume ls
七 volume数据备份及还原
7.1 备份
1 root@docker:~# docker run -d -p 1111:80/tcp --name web09 -v /usr/local/apache2/htdocs httpd 2 root@docker:~# docker inspect web09 | grep -A11 "Mounts" 3 root@docker:~# echo "This is web09 backup test!">/var/lib/docker/volumes/16aa6956e7076ecb9f256c302833640880e3bb1b8602771cca378e7230975488/_data/index.html
1 root@docker:~# docker run --volumes-from web09 --name mydatabackup -v /mybackup:/databack httpd tar zcf /databack/http-backup.tar.gz /usr/local/apache2/htdocs
7.2 还原
1 root@docker:~# docker run -d -v /usr/local/apache2/htdocs --name temp01 httpd 2 root@docker:~# docker run --volumes-from temp01 --name web10 -v /mybackup:/databack httpd tar zxf /databack/http-backup.tar.gz 3 #此步骤执行完毕即将备份文件已经还原至容器的/usr/local/apache2/htdocs。 4 root@docker:~# docker run -d -p 2222:80/tcp --name web11 --volumes-from temp01 httpd
原文链接:https://www.cnblogs.com/itzgr/p/10182944.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:linux进程调度
- #Linux学习# 用户和用户组管理 2020-05-26
- 操作系统第五次实验报告——内存管理 2020-05-17
- CentOS创建管理LVM分区(挂载新分区) 2020-05-17
- 容器技术之LXC WEB管理工具LXC WEB Panel 2020-05-17
- 【Linux面试题4】用户管理 2020-05-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash