Docker之数据卷的使用

这篇具有很好参考价值的文章主要介绍了Docker之数据卷的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Docker之数据卷的使用,部署,docker,容器,运维

 🎉🎉欢迎来到我的CSDN主页!🎉🎉

🏅我是君易--鑨,一个在CSDN分享笔记的博主。📚📚

🌟推荐给大家我的博客专栏《Docker之数据卷的使用》。🎯🎯

🎁如果感觉还不错的话请给我关注加三连吧!🎁🎁

Docker之数据卷的使用,部署,docker,容器,运维 

一、数据卷的简介

1. Docker数据管理

        Docker 提供了多种方式来管理容器中的数据,以确保数据的持久性和可靠性。以下是一些常见的 Docker 数据管理方式:

1.1 数据卷(Volumes)

        数据卷是 Docker 中最常用的数据管理方式之一。数据卷是容器与主机之间共享的持久化存储,独立于容器的生命周期。数据卷可以用于存储应用程序数据、配置文件等。容器可以通过挂载数据卷来访问和修改其中的数据。数据卷的好处包括数据的持久性、容器之间的共享数据,以及方便数据备份和恢复

# 创建数据卷
docker volume create my_volume

# 启动容器并挂载数据卷
docker run -d -v my_volume:/path/in/container my_image

1.2 绑定挂载(Bind Mounts)

        绑定挂载允许将主机文件系统上的特定路径挂载到容器内的路径。这种方式可以用于在容器中访问主机上的文件或目录,也可以用于在主机和容器之间实现数据共享。

# 启动容器并使用绑定挂载
docker run -d -v /host/path:/container/path my_image

1.3 匿名卷

        Docker 允许在容器中创建匿名卷,这些卷不会直接与主机上的文件系统关联,而是存储在 Docker 管理的卷中。这样可以确保容器的数据在主机上是相对隔离的

# 启动容器并使用匿名卷
docker run -d -v /container/path my_image

1.4 数据卷容器

        可以创建一个专门用于存储数据的容器,其他容器通过挂载这个容器的数据卷来实现数据共享。这样的容器通常被称为数据卷容器。

# 创建数据卷容器
docker create -v /data --name my_data_container my_image

# 启动应用容器,并挂载数据卷容器
docker run --volumes-from my_data_container another_image

 1.5 Docker Compose

        Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过 Compose 文件,可以方便地定义多个服务、容器、网络和数据卷,并一起管理它们的生命周期

version: '3'
services:
  web:
    image: my_web_app
    volumes:
      - my_volume:/app/data

volumes:
  my_volume:

         总之,这些数据管理方式可以根据应用程序的需求进行选择和组合。使用适当的数据管理方式有助于确保容器中的数据持久、可靠、易于备份和恢复。

2.  数据卷的简介

2.1 数据卷的关键特性

Docker数据卷的一些关键特性
关键特性 说明
持久性 数据卷中的数据是持久的,即使容器被删除,数据卷依然存在。这使得数据可以在容器之间共享,而不受容器生命周期的限制。
独立于容器 数据卷是独立于容器的实体,它可以被多个容器挂载和共享。这种独立性使得数据卷可以被用于存储共享数据、配置信息等。
挂载点 在容器内,数据卷通过指定挂载点(Mount Point)来与容器中的路径关联。容器内的应用程序可以读写这个挂载点,实现对数据卷中数据的访问。
主机和容器之间的数据传递 数据卷可以用于在主机和容器之间传递数据。通过挂载主机上的路径到容器内,可以实现主机和容器之间的数据共享。

2.2 数据卷的一些基本使用方式

创建数据卷
docker volume create my_volume
启动容器并挂载数据卷
docker run -d -v my_volume:/path/in/container my_image
查看数据卷信息
docker volume inspect my_volume

3. 数据卷容器简介

3.1 数据卷容器的一些关键特性

Docker数据卷的一些关键特性
关键特性 说明
持久性 数据卷中的数据是持久的,即使容器被删除,数据卷依然存在。这使得数据可以在容器之间共享,而不受容器生命周期的限制。
独立于容器 数据卷是独立于容器的实体,它可以被多个容器挂载和共享。这种独立性使得数据卷可以被用于存储共享数据、配置信息等。
挂载点 在容器内,数据卷通过指定挂载点(Mount Point)来与容器中的路径关联。容器内的应用程序可以读写这个挂载点,实现对数据卷中数据的访问。
主机和容器之间的数据传递 数据卷可以用于在主机和容器之间传递数据。通过挂载主机上的路径到容器内,可以实现主机和容器之间的数据共享。3.2 s

3.2 数据卷容器的基本使用

创建数据卷容器 
docker create -v /data --name my_data_container my_image
启动其他容器并挂载数据卷容器
docker run --volumes-from my_data_container -d another_image
查看数据卷容器信
docker inspect my_data_container

二、实用演示

1. 数据卷挂载

        我们创建一个容器并且进入到我们的容器中,在容器中创建一个文件并且编写其内容在里面

Docker之数据卷的使用,部署,docker,容器,运维 

        然后我们按住ctrl+d退出容器,然后删除所有的容器,再重新创建一个一样的容器。 

Docker之数据卷的使用,部署,docker,容器,运维

         由上图可知我们在新建的一个容器中并没有我们之前在容器中新建的a.txt文件,因为每个容器的数据都是独立的,而且数据跟随者容器的生命周期的。

         首先我们先确保我们有tomcat镜像,没有的话我们输入指令docker pull tomcat 版本执行进行拉取。

Docker之数据卷的使用,部署,docker,容器,运维

         我们用tomcat的镜像创建一个容器

Docker之数据卷的使用,部署,docker,容器,运维

         我们本机的网页上去访问我们Docker中的服务器,如果访问不了需要我们开放端口号

指令:firewall-cmd --zone=public --add-port=8080/tcp     //开放对应端口

           firewall-cmd reload    //刷新防火墙

我们在tomcat首页可以进行项目发布,点击右侧的Manager App进行发布,但是我们的tomcat没有user.xml文件没有用户信息,因此我们需要添加其文件。  我们可以子外面编写好文件利用数据卷将其放到我们的tomcat中进行其覆盖。

Docker之数据卷的使用,部署,docker,容器,运维

         我们进入我们创建的tomcat容器中

Docker之数据卷的使用,部署,docker,容器,运维

       我们进入tomcat服务器中的webapps文件目录下,将我们的项目war通过第三方连接工具使用托拉拽的方式添加到里面。

Docker之数据卷的使用,部署,docker,容器,运维

        我们创建一个数据卷  

Docker之数据卷的使用,部署,docker,容器,运维

         挂载数据卷 :

在用 docker run 命令的时候,使用 -- mount 标记来将 数据卷 挂载到容器里。在一次 docker
run 中可以挂载多个 数据卷

 Docker之数据卷的使用,部署,docker,容器,运维

         我们新建一个窗口进行瓜挂载同一个数据卷,进入其生成的数据卷的文件夹

Docker之数据卷的使用,部署,docker,容器,运维

         我们在c3中的testdir中新建一个文件,我们进入到c2的testdir中进行查看

Docker之数据卷的使用,部署,docker,容器,运维

         由此可知数据卷的数据是共享的,我们将所有的容器删除掉,我们切换到v1的目录下,将war包拖至该目录下。

Docker之数据卷的使用,部署,docker,容器,运维

        我们再执行命令将数据卷的内容弄到指定的目录下。 是一整个目录的替换

Docker之数据卷的使用,部署,docker,容器,运维 

         我们再去访问虚拟机的tomcat。因为我们的文件覆盖了

Docker之数据卷的使用,部署,docker,容器,运维

Docker之数据卷的使用,部署,docker,容器,运维 

         因为我们导入的项目包时war包,因此会自动给我们解压,我们可以直接在网页进行访问。

Docker之数据卷的使用,部署,docker,容器,运维

2. 目录挂载

        去除容器和数据卷

Docker之数据卷的使用,部署,docker,容器,运维

          我们在根目录下创建一个文件夹用于实现目录挂载

Docker之数据卷的使用,部署,docker,容器,运维

         切入到该文件中,将我们的war包放入到文件夹中

 Docker之数据卷的使用,部署,docker,容器,运维

         接下来进行目录挂载。

Docker之数据卷的使用,部署,docker,容器,运维 

         我们再去网页访问8080

Docker之数据卷的使用,部署,docker,容器,运维

         再去访问我们的项目

Docker之数据卷的使用,部署,docker,容器,运维

         /soft直接将webapps文件替换掉了。我们去除所有的容器,执行下述指令:

docker run -itd --name t1 -v /soft/oapro.war:/usr/local/tomcat/webapps/oapro.war -p 8080:8080 tomcat:8.5.2

 Docker之数据卷的使用,部署,docker,容器,运维

        我们再访问项目和服务器  

Docker之数据卷的使用,部署,docker,容器,运维

Docker之数据卷的使用,部署,docker,容器,运维


 🎉🎉本期的博客分享到此结束🎉🎉

📚📚各位老铁慢慢消化📚📚

🎯🎯下期博客博主会带来新货🎯🎯

🎁三连加关注,阅读不迷路 !🎁

Docker之数据卷的使用,部署,docker,容器,运维文章来源地址https://www.toymoban.com/news/detail-812600.html

到了这里,关于Docker之数据卷的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 小白到运维工程师自学之路 第六十二集 (docker持久化与数据卷容器)

    一、概述 Docker持久化是指将容器中的数据持久保存在主机上,以便在容器重新启动或迁移时不丢失数据。由于Docker容器是临时和可变的,它们的文件系统默认是易失的,这意味着容器中的任何更改或创建的文件都只存在于此容器的生命周期内。但是,在许多场景中,我们希望

    2024年02月14日
    浏览(39)
  • 基于docker容器部署MySQL数据库

    一,概要.... 2 二,环境准备.... 3 2.1,docker部署.... 3 三,使用docker部署mysql 6 3.1、创建数据存放目录.... 6 3.2、创建bridge网络并指定IP区间.... 6 3.3、Docker安装MySQL. 6 3.4、自定义配置.... 7 四,MySQL简单的配置.... 9 4.1、在容器 mysql 中开启一个交互模式的终端.... 9 4.2、mysql登录....

    2024年02月04日
    浏览(78)
  • 使用docker容器部署httpd(绝对可用)

    创建文件夹存放httpd的数据和httpd的配置 mkdir -r /install/httpdData 在里面建4个文件   编写 Dockerfile FROM docker.io/centos:7 RUN echo \\\"Asia/Shanghai\\\" /etc/timezone RUN yum -y install httpd RUN mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.bak COPY run.sh /run.sh RUN chmod 777 /run.sh EXPOSE 80 ENTRYPOINT [ \\\"/run.sh

    2023年04月26日
    浏览(58)
  • 使用 Docker Swarm(集群) 和Docker Stack(堆栈)部署容器化应用

    说到集群,第一个想到的就是k8s,但docker官方也提供了集群和编排解决方案,它允许你将多个 Docker 主机连接在一起,形成一个“群集”(Swarm),并可以在这个 Swarm 上运行和管理你的服务。 与Kubernetes相比,Docker Swarm的群集管理功能相对简单,Swarm更适合于小型到中型的容器

    2024年04月25日
    浏览(35)
  • 【Docker】Docker的使用案例以及未来发展、Docker Hub 服务、环境安全、容器部署安全

    作者简介: 辭七七,目前大二,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖    Docker是一个命令行工具,它提供了中央“docker”执行过程中所需的所有工具 。这使得Docker的操作非常简单。

    2024年02月08日
    浏览(49)
  • Docker部署的MySQL容器数据备份与导入

    采用Docker部署MySQL时,需要对MySQL的数据,通过服务器命令的方式进行导入导出的情况。 假设MySQL容器名为dsms_mysql5.7,用户名为root,密码为123456,数据库名为demo,备份SQL文件为backup.sql,则可通过以下命令,实现MySQL数据库脚本的备份和导入。

    2024年03月08日
    浏览(45)
  • 使用docker安装部署elasticsearch,并持久化到容器卷

    1.拉取Elasticsearch Docker镜像 在终端中执行以下命令来从Docker Hub拉取特定版本(如8.2.0)的Elasticsearch镜像。请确保你的网络连接正常,并且Docker已经在你的机器上安装并正确配置。 2.创建挂载目录 执行以下命令在本地创建文件夹,用于持久化 Elasticsearch 的数据和配置。 如果上述文

    2024年04月08日
    浏览(50)
  • 第七次作业 运维高级 docker容器进级版

    1、使用mysql:5.6和 owncloud 镜像,构建一个个人网盘。 (1)拉取相应镜像 (2)运行mysql:5.6容器 (3)运行owncloud容器 (4)查看并验证 之后在浏览器中输入ipaddress:8080 2、安装搭建私有仓库 Harbor (1)下载好harbor和docker-compose (2)上传到Linux服务器 (3)复制docker-compose并修改权限 (4)解压harbor (

    2024年02月12日
    浏览(57)
  • 使用docker部署RStudio容器并结合内网穿透实现公网访问

    RStudio Server 使你能够在 Linux 服务器上运行你所熟悉和喜爱的 RStudio IDE,并通过 Web 浏览器进行访问,从而将 RStudio IDE 的强大功能和工作效率带到基于服务器的集中式环境中。 下面介绍在Linux docker中安装RStudio Server并结合cpolar内网穿透工具,实现远程访问,docker方式安装可以避免

    2024年01月19日
    浏览(49)
  • 【问题解决】容器部署MySQL的数据在docker commit导出的镜像中丢失

    最近公司有个甲方项目参加竞赛,要求在(基于kubeflow/arena)平台上部置应用,可以将MySQL打包在应用一起,也可以分开部署,没有提供volume相关的支持。大意是可以把初始好的数据直接拿到平台上。 经过本人在Linux虚机中启动MySQL容器导入数据再 docker commit 出镜像部署到平台上

    2024年02月11日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包