3.Docker容器的数据卷

简介: 3.Docker容器的数据卷

场景

  • Docker容器删除后,在容器中的数据也会消失
  • Docker容器和外部机器不可以直接交换文件,网络不互通(可以通过数据卷)
  • 容器之间数据交换

数据卷的作用

  • 数据卷是宿主机中的一个目录或文件
  • 当容器目录和数据卷目录绑定后,对方的修改会立即同步
  • 一个数据卷可以被多个容器同时挂载
  • 一个容器也可以挂在多个数据卷

配置数据卷

  • 创建启动容器时,使用 -v 参数设置数据卷docker run ... -v 宿主机目录(文件):容器内目录(文件)目录必须是绝对路径,如果目录不存在,会自动创建。可以挂载多个数据卷。

例(一个容器挂载一个目录):

bash

复制代码

docker run -it --name=c1 -v /root/data:/root/data_container centos:7 /bin/bash
# -v 后面的就是 宿主机目录(文件):容器内目录(文件)
docker run -it --name=c1 -v ~/data:/root/data_container centos:7
# 宿主机里面可以用~写,但是容器里面不可以

例(一个容器挂载多个目录):

ruby

复制代码

docker run -it --name=c2 \
-v ~/data2:/root/data2 \
-v ~/data3:/root/data3 \
centos:7
# \ 表示换行,和原先的连在一起

例(多个容器挂载一个目录):

ruby

复制代码

# 有 c3 和 c4 两个容器
docker run -it --name=c3 -v ~/data:/root/data centos:7
docker run -it --name=c4 -v ~/data:/root/data centos:7

数据卷容器

多容器进行数据交换

  1. 多个容器挂载同一个数据卷
  2. 数据卷容器

配置数据卷容器

1.创建启动c3数据卷容器,使用-v参数设置数据卷

bash

复制代码

docker run -it --name=c3 -v /volume centos:7 /bin/bash

2.创建启动c1,c2容器,使用 --volumes-from 参数设置数据卷

ini

复制代码

docker run -it --name=c1 --volumes-from c3 centos:7 /bin/bash
docker run -it --name=c2 --volumes-from c3 centos:7 /bin/bash


相关文章
|
8天前
|
NoSQL 关系型数据库 Redis
Docker的通俗理解和通过宿主机端口访问Redis容器的实例
本文目标:引导初学者入门Docker,理解镜像、容器和宿主机概念,学习常用Docker命令,特别是如何创建并从Redis容器通过宿主机端口访问。 关键点: - Docker核心:镜像(类)、容器(实例)、宿主机(运行环境)。 - `docker pull` 拉取镜像,如 `redis:3.0`。 - `docker run -d --name` 后台运行容器,如 `my-redis`。 - `-p` 参数做端口映射,如 `6379:6379`。 - `docker exec -it` 交互式进入容器,如 `bash` 或执行命令。
|
5天前
|
前端开发 安全 数据库
Web架构&前后端分离站&Docker容器站&集成软件站&建站分配
Web架构&前后端分离站&Docker容器站&集成软件站&建站分配
|
6天前
|
存储 索引 Python
Python基础第五篇(Python数据容器)
Python基础第五篇(Python数据容器)
|
2天前
|
NoSQL Redis Docker
使用 Docker Compose 接管现有容器的文档
使用 Docker Compose 接管现有容器的文档
14 2
|
4天前
|
Cloud Native 安全 Docker
云上攻防-云原生篇&Docker安全&系统内核&版本&CDK自动利用&容器逃逸
云上攻防-云原生篇&Docker安全&系统内核&版本&CDK自动利用&容器逃逸
|
2天前
|
存储 关系型数据库 MySQL
解读 MySQL 容器信息:`docker inspect` 字段详解
解读 MySQL 容器信息:`docker inspect` 字段详解
20 1
|
5天前
|
Linux Docker 容器
蓝易云 - net.ipv4.ip_forward=0导致docker容器无法与外部通信
完成以上步骤后,Docker容器应该能够正常与外部通信了。
10 2
|
5天前
|
Docker 容器
蓝易云 - Docker中容器的随机命名方式
例如,一个自动生成的容器名称可能是"happy_einstein"。这种随机命名方式既保证了容器名称的唯一性,又增加了一些趣味性。
12 2
|
8天前
|
监控 Java 数据安全/隐私保护
性能监控之 JMX 监控 Docker 容器中的 Java 应用
【6月更文挑战9天】性能监控之 JMX 监控 Docker 容器中的 Java 应用
28 1
|
12天前
|
运维 Ubuntu Docker
深入理解容器化技术:Docker的应用与实践
在这个数字化转型迅速推进的时代,容器化技术为软件开发和部署提供了新的路径。本文将深入探讨Docker技术的基本原理、应用场景以及实际操作,旨在帮助读者全面理解并掌握这一关键技术。
72 2