Docker 数据卷和数据卷容器详解架构师
2023-06-13 09:20:20 时间
1.本节课主要讲解如何在Docker内部及容器之间管理数据。
容器中管理数据主要有两种方式:
数据卷(Data volumes)
数据卷容器(Data volume containers)
2.数据卷:是一个可供一个或多个容器使用的特殊目录,它绕过UFS,可以提供很多有用的特性:
a.数据卷可以在容器之间共享和重用
b.对数据卷的修改会立马生效
c.对数据卷的更新,不会影响镜像
d.卷会一直存在,直到没有容器使用
*数据卷的使用,类似于 Linux 下对目录或文件进行 mount。
3.创建数据卷
$ docker run -idt -P -v /webapp my/centos:v888 /bin/bash ##a、/webapp为创建的数据卷 b、my/centos:v888为镜像 c、-P外网到容器的一个硬射的IP ecde369d5c9ca75eaf394caaa1f0ce5d63e1323739c657595bd01f68d5d2d304 $ docker attach ecde369d5c9ca75eaf394caaa1f0ce5d63e1323739c657595bd01f68d5d2d304 ##进入守护状态运行的容器中
$ docker run -idt -P --name web1 -v /webapp my/centos:v888 /bin/bash ##/webapp上面创建的容器,web1和/webapp目录是共享的,但对数据卷的更新,不会影响镜像 01808bde8cba1c5dab720043af7c607625b5b769cac8133c09aef02c246b6312 $ docker attach web1 ##通过web1名称进入守护状态运行的容器中
-v表示创建一个数据卷并且挂载到容器里。
name指定容器的名称
-d是指守护状态下运行(daemon)
启动之后,使用docker attach命令进入守护状态运行的容器中
除此之外,还可以挂载宿主机的一个目录来映射到容器里面作为数据卷
$ docker run -idt -P --name web2 -v /home/xm6f/dev/test:/opt/docker my/centos:v888 /bin/bash d0aeebbcd269143e1345ace90992d21c5d9687375f39524a9ed25d6dd2a5b54f $ docker attach web2
表示宿主机的目录/home/xm6f/dev/test映射到容器中的/opt/docker目录。
你会发现宿主机/home/xm6f/dev/test目录创建的文件跟容器/opt/docker目录的文件一样。
docker挂载的数据卷默认是可读可写的,若要指定为只读,可以加权限限制:ro
$ docker run -idt -P --name web3 -v /home/xm6f/dev/test:/opt/docker:ro my/centos:v888 /bin/bash
也可以挂载单个文件到容器
docker run -idt -P --name web4 -v ~/.bash_history:/.bash_history my/centos:v888 /bin/bash
4.数据卷容器:是一个正常的容器,专门用来提供数据卷供其他容器挂载
建立数据卷容器:
$ docker run -d -v /database --name db my/centos:v888 echo database $ docker logs db
在其他容器中使用 volumes-from挂载db容器中的数据卷
$ docker run -idt -v /aaa --name bbb my/centos:v888 /bin/bash $ docker run -idt --volumes-from bbb --name ccc my/centos:v888 /bin/bash
可以看到数据卷容器,在多个容器中挂载之后是数据共享的。
5.数据卷不会被自动删除,要删除一个数据卷,必须在删除最后一个挂着该数据卷的容器是指定-v参数,如下
docker rm -v 数据卷名字
7066.html
架构架构师架构设计相关文章
- docker拷贝目录到容器_docker退出容器命令
- Docker镜像,容器和仓库到底是什么?
- docker 各种参数配置
- Docker容器访问SQL Server 抛异常:SSL Provider, error: 31 - Encryption(ssl/tls) handshake failed
- 卸载docker命令_删除docker0虚拟网卡
- docker安装MySQL主从复制 读写分离
- 2-Docker容器数据卷
- CentOS7安装Docker
- Docker容器实战六:构建定制化镜像
- docker端口映射后访问不了_docker暴露多个端口
- 【云原生】Docker镜像
- Docker容器里进程的 pid 是如何申请出来的?
- 【Docker】基于Rancher快速部署docker容器管理平台
- 「Docker学习系列教程」9-Docker容器数据卷介绍
- 「 【Docker】利用宝塔docker管理器搭建为知笔记(docker安装为知笔记) 」
- Docker部署MinIO
- 【Docker 系列】docker 学习八,Docker 网络
- docker安装tomcat
- 如何在 Docker 容器内部使用外部代理服务器访问HTTP网络资源
- 【云原生 • Docker】用故事给老板讲Docker核心原理
- 【Linux 系列】Watchtower - 自动更新 Docker 镜像与容器
- 【Docker】容器的安装与使用
- Docker数据卷容器备份、恢复详解架构师
- 在Linux系统中安装Docker容器(linux下安装docker)
- Linux下Docker安装指南(linux下docker安装)
- 使用Docker安装Redis,一步到位!(docker安装redis)
- Docker 重大更新,版本升至17.03
- Dockly:从终端管理 Docker 容器
- docker-podman管理容器
- docker-数据卷容器
- 跨主机网络概述 – 每天5分钟玩转 Docker 容器技术(48)
- 用volume container共享数据-每天5分钟玩转Docker容器技术(42)