`

一篇文章教你实战Docker容器数据卷

阅读更多

在上一篇中,咱们对Docker中的容器数据卷做了介绍。已经知道了容器数据卷是什么?能干什么用。那么本篇咱们就来实战容器数据卷,Docker容器数据卷案例主要做以下三个案例

1:宿主机(也就是Docker所安装的机器)与容器之间的映射-让Docker可以直接访问宿主机上面的指定目录;

2:读写规则映射添加说明-数据券默认是读写权限的,我们可以设置只读权限

3:卷的继承和共享-容器1做了映射后,容器2可以继承容器1,然后容器2也就有了映射关系

 

大家好,我是凯哥Java(kaigejava),乐于分享,每日更新技术文章,欢迎大家关注“凯哥Java”,及时了解更多。让我们一起学Java。也欢迎大家有事没事就来和凯哥聊聊~~~

 

直通车,本系列教程已发布文章,快速到达,《Docker学习系列》教程已经发布的内容如下:

【图文教程】Windows11下安装Docker Desktop

【填坑】在windows系统下安装Docker Desktop后迁移镜像位置

【Docker学习系列】Docker学习1-docker安装

【Docker学习系列】Docker学习2-docker设置镜像加速器

【Docker学习系列】Docker学习3-docker的run命令干了什么?docker为什么比虚拟机快?

【Docker学习系列】Docker学习2-常用命令之启动命令和镜像命令

【Docker学习系列】Docker学习系列3:常用命令之容器命令

【Docker学习系列】Docker学习4-常用命令之重要的容器命令

【Docker教程系列】Docker学习5-Docker镜像理解

【Docker教程系列】Docker学习6-Docker镜像commit操作案例

【Docker学习教程系列】7-如何将本地的Docker镜像发布到阿里云

【Docker学习教程系列】8-如何将本地的Docker镜像发布到私服?

「Docker学习系列教程」9-Docker容器数据卷介绍

【Docker学习教程系列汇总】笔记及遇到问题解决文章

 

1:宿主机VS容器之间映射添加容器卷

1.1:命令公式:

docker run  -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名

注意这个命令是在宿主机上执行

实例:

将宿主机/tmp/host_data目录映射到容器的/tmp/docker_data上

9a713990df14bf54c856e14cd5eaa59f.png

在d为:bdea29051ebb的容器i的/tmp/docker_data里面创建一个indocker.txt

0c7b8aa9e1d0086b9eaced3972d7170d.png

 

接着,我们回到宿主机中,查看tmp/host_data目录下:

13fa34d1863ff907c65a0086afc80d45.png

同理,在宿主机上创建了inhost.txt文件,在容器中也可以看到

5200161a0fbcb43a456e7158a6893306.png

ad7d9c8b87728dc2d146fab7320e4af4.png

1.2:查看数据卷是否挂载成功

命令公式:

docker inspect 容器id

4d7c4baf44c083e753628898fa6836e2.png

再到 Mounts这个部分:

de4f7f88db8cb3e13b2c78235bf94b67.png

我们可以看到type是bind,sorce是宿主机的,destination是容器的

1.3:容器和宿主机之间数据共享

上文案例中的,indocker.txt和inhost.txt案例就是。

思考:当把容器关闭后,在宿主机的目录中,在创建了一个c.txt文件之后,在启动容器,那么容器的挂载目录中会有c.txt文件吗 ?

答案:c.txt文件依然会在容器中

2:读写规则映射添加说明

当宿主机和容器挂载数据卷之后,默认的读写权限就是:“读写”

c5b839813b2273365d6283e8f6459a93.png

设置只读权限的命令公式

docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:ro 镜像名称

和默认的区别就是加上了ro参数

ro:read only.

如果在容器内写操作会有以下提示:

d3ff58dd1379a89182a351715b9daa73.png

3:卷的继承和共享

案例:

容器1完成和宿主机的映射

容器2继承容器1的卷规则

8ceae4020c7c58b51be203eaaccc08f3.png

容器2继承容器1的卷规则:

命令公式

docker run -it --privileged=true --volumes-from 父类 [name] 镜像名

f32f8ca76173ed6c9c26e3675fb27bc1.png

5accbb6852a95e5b63edf7a73540b260.png

在u2容器中,查看tmp目录

b5f7a2abf76097983908ddad538073a8.png

 

可以看到已经存在了。

 

分享到:
评论

相关推荐

    SpringCloudAlibaba微服务docker容器打包和部署示例实战.doc

    SpringCloudAlibaba 微服务 Docker 容器打包和部署示例实战 本篇文章将详细讲解如何使用 SpringCloudAlibaba 框架创建库存微服务和订单微服务,实现服务注册与发现,并将微服务部署到 Docker 容器中。 知识点1:...

    docker_practice入门到实战篇

    简介:一、Docker概述; 二、Docker安装使用; 三、Docker的应用场景; 四、案例:安装Docker并实现镜像、容器管理;五、Docker三剑客项目;六、Docker的安全以及底层实现

    docker拉取mysql5.6镜像并run一个容器,使用mysql服务

    在这篇文章中,我们将学习如何使用 Docker 运行 MySQL 服务。我们将从 Docker 中拉取 MySQL 5.6 镜像,运行容器,并使用宿主机访问容器中的 MySQL 服务。 一、Docker 简介 ---------------- Docker 是一个容器化...

    Docker Kubernetes 微服务容器化实践(二) 2.1 微服务实战 thrift篇 ③

    这个是java service对thrift的调用,thrift客户端生成,一个单独的例子

    Android代码-SpringBoot-Dubbo-Docker-Jenkins

    本文将以原理 实战的方式,首先对“微服务”相关的概念进行知识点扫盲,然后开始手把手教你搭建这一整套的微服务系统。 这套微服务框架能干啥? 这套系统搭建完之后,那可就厉害了: 微服务架构 你的整个应用程序...

    蝴蝶容器(动态容器)

    由于标签中有“源码”和“工具”,我们可以推测这篇文章可能包含了蝴蝶容器的源代码分析,以及如何将它作为开发或运维的工具来使用。 “源码”标签意味着我们可能会探讨到容器技术的实现细节,例如Docker或...

    指尖的Android之实战篇---服务器端

    《指尖的Android之实战篇---服务器端》这篇文章主要聚焦于Android应用开发中的服务器端实践,旨在帮助开发者深入了解如何构建和优化Android应用与后端服务的交互。在Android应用开发中,服务器端扮演着至关重要的...

    Java学习材料大全(499篇文章)

    最后,现代Java开发中,容器化和微服务架构也变得越来越重要,Docker、Kubernetes、Spring Boot、Spring Cloud等技术的介绍和实践可能会在某些文章中出现。 这个压缩包作为Java学习的资源库,不仅适合自学,也可以...

    TOOLS技术文章 总汇

    5. **容器化技术**:Docker和Kubernetes是目前非常流行的容器化和容器编排工具,文章可能涉及如何打包应用、创建镜像以及集群管理。 6. **云计算服务**:如AWS、Azure、Google Cloud等,可能有文章介绍如何选择合适...

    CCTC 2016 永信至诚张凯:CloudStack+Docker构建云端信息安全实验场

    而这一切,都是基于"场景"为中心的信息安全实验平台实现的,其底层技术包括了KVM虚拟化技术和Docker容器技术。KVM和Docker的结合,不仅提高了资源的利用率,同时也提高了环境搭建的速度,让信息安全的学习和实验更加...

    springboot 实战

    通过编写Dockerfile,可以轻松将应用部署到Docker容器中。 8. **持续集成/持续部署(CI/CD)**:结合Jenkins、GitLab CI/CD等工具,可以自动化构建、测试和部署SpringBoot应用,实现DevOps流程。 在“springboot_...

    Python高效开发实战原代码(刘长龙)

    6. 部署与运维:了解如何将应用部署到服务器,如使用Nginx作为反向代理,Gunicorn或uWSGI作为Wsgi服务器,以及如何配置Docker容器化应用,这些都是高效开发的一部分。同时,了解监控工具如Prometheus和Grafana,可以...

    NodeJS实战

    - **Docker化**:将Node.js应用容器化,利用Docker进行部署。 - **CI/CD**:配置GitHub Actions或Jenkins等工具,实现持续集成和持续部署。 9. **实战项目** - **RESTful API服务**:构建一个完整的RESTful API...

    9.Jenkins持续集成插件实战篇

    《Jenkins持续集成插件实战篇》主要涵盖了 Jenkins 在软件开发过程中的持续集成实践,它是一种强大的自动化工具,尤其在持续集成和持续部署(CI/CD)领域具有广泛的应用。以下将详细介绍 Jenkins 及其在实际工作中的...

    2020微服务项目实战

    4. **Docker** 和 **Kubernetes**:容器化和编排工具,用于微服务的部署和管理,提供高度的自动化和可移植性。 【高可用集群篇】将讲解如何构建和管理微服务集群,确保服务的稳定性和高可用性: 1. **服务治理**:...

Global site tag (gtag.js) - Google Analytics