Docker学习笔记16

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

在生产环境中使用Docker,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享。

容器管理数据有两种方式:

1)数据卷:容器内数据直接映射到本地主机环境;

2)数据卷容器:使用特定容器维护数据卷;

数据卷:

数据卷的概念:数据卷是一个可供容器使用的特殊目录,它将主机操作系统的目录直接映射进容器。

数据卷特性:

1)数据卷可以在容器之间共享和重用,容器间传递数据将变得高效和方便;

2)对数据卷内的数据的修改立马生效,无论是容器内操作还是本地操作;

3)对数据卷的更新不会影响镜像解耦开应用和数据;

4)卷会一直存在,直到没有容器使用,可以安全第卸载它;

1、创建数据卷:

使用命令:

docker volume create -d local test
[root@docker-server ~]# docker volume --help

Usage:  docker volume COMMAND

Manage volumes

Commands:
  create      Create a volume
  inspect     Display detailed information on one or more volumes
  ls          List volumes
  prune       Remove all unused local volumes
  rm          Remove one or more volumes

Run 'docker volume COMMAND --help' for more information on a command.
[root@docker-server ~]#

这个时候查看/var/lib/docker/volumes路径下,会发现所创建的数据卷位置。

2、绑定数据卷:

绑定数据卷:在创建容器时将主机本地的任意路径挂载到容器里作为数据卷,这种形式创建的数据卷称为绑定数据卷。

在docker run命令的时候,可以使用-mount选项来使用数据卷。

-mount选项支持三种类型的数据卷:

volume:普通数据卷;

bind:绑定数据卷,映射到主机指定路径下;

tmpfs:临时数据卷,只存在于内存中;

docker run -d -P --name web --mount type=bind source=/webapp,destination=/opt/webapp training/webapp python app.py

# 等同于命令
docker run -d -P --name web -v /webapp:/opt/webapp training/webapp python app.py

这个功能在进行应用测试的时候十分方便,比如用户可以放置一些程序或数据到本地目录中实时进行更新,然后在容器内运行和使用。

注意的是:本地目录的路径必须是绝对路径,容器内路径可以为相对路径,如果目录不存在,Docker就会自动创建。

数据卷容器:

这个概念是在培训视频中没有讲解的内容。

如果用户需要在多个容器之间共享一些持续更新的数据,最简单的方式就是使用数据卷容器,数据卷容器也是一个容器,但是它的目的是专门提供数据卷给其他容器挂载。

案例:

创建一个数据卷容器dbdata,并在其中创建一个数据卷挂载到/dbdata

docker run -it -v /dbdata --name dbdata ubuntu
[root@docker-server ~]# docker run -it -v /dbdata --name dbdata ubuntu
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
6b851dcae6ca: Pull complete
Digest: sha256:6120be6a2b7ce665d0cbddc3ce6eae60fe94637c6a66985312d1f02f63cc0bcd
Status: Downloaded newer image for ubuntu:latest
root@d60e821f8f19:/# ls
bin   dbdata  etc   lib    lib64   media  opt   root  sbin  sys  usr
boot  dev     home  lib32  libx32  mnt    proc  run   srv   tmp  var
root@d60e821f8f19:/# [root@docker-server ~]#
[root@docker-server ~]#
[root@docker-server ~]# docker run -it --volumes-from dbdata --name d1 ubuntu
root@d84dc2ad2762:/# [root@docker-server ~]#
[root@docker-server ~]# docker run -it --volumes-from dbdata --name d2 ubuntu
root@68a25c215f35:/# [root@docker-server ~]#

在dbdata容器中创建一个test文件,然后到d1和d2容器中检查/dbdata中,可以看到有test文件。

那么:

1)可以多次使用--volume-from参数来从多个容器挂载多个数据卷;

2)还可以从其他已经挂载了容器卷的容器来挂载数据卷。

docker run -d --name db3 --volumes-from d1 training/postgres

Docker学习笔记16,Docker容器,docker

这个例子就是从其他已经挂载了容器卷的容器来挂载数据卷。

如果删除了挂载的容器,数据卷不会被自动删除。

如果要删除一个数据卷,必须在删除最后一个还挂载着它的容器时显式使用docker rm -v命令来指定同时删除关联的容器。

 文章来源地址https://www.toymoban.com/news/detail-517533.html

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

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

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

相关文章

  • Ubantu docker学习笔记(七)容器网络

    容器网络主要用于容器和容器之间、容器与外网、容器和宿主机的通信和连接。 参数 命令 -f 过滤条件 -format string 格式化打印结果 –no-trunc 不缩略显示 -q 只显示网络号 参数 命令 -d 指定网络格式 –subnet strings 指定子网网段 –ip-range strings 指定容器的IP范围 –gateway strings 子

    2023年04月27日
    浏览(35)
  • Ubantu docker学习笔记(九)容器监控 自带的监控+sysdig+scope+cAdvisor+prometheus

    监控,这一个词对于我们开发人员已经习以为常,我们通过对于内存、IO、CPU等性能的监控去判断当前运行状态的情况,容器作为一个已经打包好的虚拟环境亦是如此,特别是多个容器运行,需要收集docker各容器的运行状态和运行信息,本章将进行容器监控,第三方容器监控

    2024年02月06日
    浏览(56)
  • Linux6.16 Docker consul的容器服务更新与发现

    第四章 LINUX Docker consul的容器服务更新与发现 一、consul 概述 1.什么是服务注册与发现 服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。直到后来出现了多个节点的

    2024年02月15日
    浏览(37)
  • 【docker笔记】Docker容器数据卷

    卷就是目录或者文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File System提供一些用于持续存储或共享数据的特性 卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此docker不会在容器删除是删除其挂载的数据卷

    2024年02月02日
    浏览(38)
  • docker笔记9:Docker-compose容器编排

    目录 1.是什么? 2. 能干嘛? 3.去哪下? 4.安装步骤  ​编辑 5.卸载步骤   6.Compose核心概念  6.1概念 6.2 Compose常用命令   7.Compose编排微服务 7.1改造升级微服务工程docker_boot 7.2不用Compose 7.2.1 单独的mysql容器实例 7.3 swagger测试 7.4上面成功了,有哪些问题? 7.5 使用Compose  7.5.1

    2024年02月09日
    浏览(45)
  • 尚硅谷Docker实战教程-笔记06【Docker容器数据卷】

    尚硅谷大数据技术-教程-学习路线-笔记汇总表【课程资料下载】 视频地址:尚硅谷Docker实战教程(docker教程天花板)_哔哩哔哩_bilibili 尚硅谷Docker实战教程-笔记01【理念简介、官网介绍、平台入门图解、平台架构图解】 尚硅谷Docker实战教程-笔记02【安装docker、镜像加速器配置

    2024年02月16日
    浏览(46)
  • Docker笔记 容器的数据卷

    大家好 我是积极向上的湘锅锅💪💪💪 思考: Docker容器删除后,在容器中产生的数据还在吗? 答案是不在了,数据存放在容器中,如果将容器删除,数据也会被一并删除 Docker容器和外部机器可以直接交换文件吗? 答案是不行,因为外部机器与docker内部之间是不互通的,但

    2024年02月15日
    浏览(39)
  • Docker容器常用命令笔记分享

    Docker是一个开源的应用容器引擎,可以让开发者将应用程序及其依赖打包成一个可移植的容器,然后发布到任何支持Docker的机器上,实现应用程序在不同环境中的一致性运行。相比传统的虚拟化技术,Docker具有更轻量级、更快速、更高效的特点。使用Docker可以方便地创建、部

    2024年03月17日
    浏览(49)
  • docker学习:docker容器管理

    Docker 是一种开源的容器化平台,可以帮助开发人员和系统管理员更轻松地创建、部署和运行应用程序。它利用 Linux容器技术,将应用程序及其依赖项打包成一个可移植的容器,以便在不同的环境中运行,从而实现应用程序的快速部署和可移植性。 1、直接拉取别人构建好的官

    2024年02月11日
    浏览(35)
  • (docker)mysql镜像拉取-创建容器-容器的使用【个人笔记】

    容器的第一次创建,需要先下载镜像,从 0、可以搜索镜像的版本 1、先拉取MySQL的镜像,默认拉取最新版,使用下面的命令拉取mysql镜像 也可以指定mysql的版本(我这里指定的是5.6版本) 2、在~(/root)目录下创建一个mysql的文件夹,用于保存mysql产生的数据,并进入mysql文件 在/

    2024年02月13日
    浏览(44)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包