docker容器学习八-卷

Docker中的卷(Volume)是一个非常重要的概念,它提供了一种在容器和宿主机之间共享和持久化数据的机制。

一、定义与功能

  • 定义:Docker卷(Volume)是一种用于在容器和宿主机之间共享和持久化数据的特殊目录或文件。它绕过了Docker的联合文件系统,以正常的文件或目录形式存在于宿主机上。
  • 功能:
    1. 数据持久性:卷中的数据是持久的,不受容器生命周期的限制。即使容器被删除,卷中的数据仍然存在,可以被其他容器重新挂载使用。
    2. 数据共享:多个容器可以共享同一个卷,这使得在容器之间共享数据变得非常方便。这对于需要共享配置文件、日志、数据库文件等数据的场景非常有用。
    3. 数据迁移:卷可以在不同的Docker主机之间迁移,实现数据的备份和恢复。
    4. 数据管理:卷独立于容器的生命周期,可以单独进行管理,包括创建、删除、备份等操作。

二、类型

Docker支持多种类型的卷,包括:

  • 本地主机的卷:通常存储在宿主机文件系统上,是Docker默认的卷类型。
  • 远程卷:可以使用网络存储,如NFS、Ceph等,实现数据的远程共享和持久化。
  • 插件支持的卷:Docker还允许通过插件来支持更多类型的卷,以满足不同的需求。

三、使用与管理

  • 创建卷:可以使用docker volume create命令创建一个新的卷。
  • 挂载卷:在创建或运行容器时,可以通过-v--mount选项将卷挂载到容器中。这样,容器就可以访问卷中的数据了。
  • 删除卷:当卷不再需要时,可以使用docker volume rm命令将其删除。但请注意,如果卷正在被容器使用,则无法直接删除。

四、优势

  • 提高数据安全性:通过将数据存储在卷中,即使容器被删除,数据也不会丢失,从而提高了数据的安全性。
  • 简化数据管理:卷提供了独立于容器生命周期的数据管理方式,使得数据的备份、恢复和迁移变得更加简单。
  • 促进容器间的数据共享:多个容器可以共享同一个卷,从而方便地实现容器间的数据共享。

五、如何实现容器与宿主机之间的数据共享

  •  创建卷 -- 空文件夹

        文件存放位置 /var/lib/docker/volumes/

        [root@docker ~]# docker volume create test

  •  启动容器,并挂载

        [root@docker ~]# docker run -d -p 7070:80 --name test-volume --mount         source=test,target=/usr/share/nginx/html nginx

        source 源 test 是卷的名字 target 容器里的目标文件夹 --- nginx默认存放网站网页的目录

        +-------------------------------------------------------------------------------------------

        | 挂载文件系统到容器 有3种格式:

        | ① docker run -d -p 7071:80 --name mount-test1 -v /data:/c_data nginx

        | ② docker run -d -p 7072:80 --name mount-test2 --mount source=test,target=...

        | ③ docker run -d -p 7073:80 --name mount-test3 -v test:/usr/share/nginx/html:ro nginx

        | ro:只读(容器只读)

        +--------------------------------------------------------------------------------------------

  •  创建卷,存放MySQL的数据

        [root@docker docker]# docker volume create mysql_data

  •  启动容器并挂载该卷

        [root@docker docker]# docker run -d -p 33069:3306 --name mysql-1 -e MYSQL_ROOT_PASSWORD='Root@123456789' -v mysql_data:/var/lib/mysql mysql:5.7.41

        Docker卷(Volume)是Docker中用于在容器和宿主机之间共享和持久化数据的重要机制。它提供了数据持久性、数据共享、数据迁移和数据管理等功能,是Docker数据管理的重要特性之一。通过合理使用Docker卷,可以大大提高Docker应用的灵活性和可靠性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值