返回顶部
首页 > 资讯 > 服务器 >docker-compose:数据卷volumes挂载规则说明
  • 905
分享到

docker-compose:数据卷volumes挂载规则说明

docker-composedocker数据卷挂载docker volumes挂载 2023-03-19 17:03:37 905人浏览 八月长安
摘要

目录案例compose前言结果概念理解tips总结案例compose # add this file # default Mysql root passWord is 123456

案例compose

# add this file
# default Mysql root passWord is 123456

version: '3.1'

services:

  mysql:
    image: mysql:5.7
    container_name: mysql_5.7
    restart: always
    ports:
     - 3305:3306
    volumes:
     - ./mysql_config/conf.d:/etc/mysql/conf.d
     - ./mysql_data:/var/lib/mysql
     - ./Docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
    environment:
      MYSQL_ROOT_PASSWORD: 123456

前言

数据卷的挂载,是从host到container的,相当于linux系统中将host文件夹挂载在container的指定目录下,若挂载位置有文件/文件夹,则原文件夹隐藏,unmount后原文件夹恢复。

结果

概念理解

  • 宿主机目录对应的物理储存地址被容器和宿主机操作系统同时管理。
  • 宿主机目录可以看成一个硬盘被挂载在容器目录下
  • 宿主机的目录和容器的目录可以看成两个指针指向同一个物理地址
  • 非空容器目录为什么不行?数据卷的意义在于数据持久化,将应用数据分离,因此数据在宿主机,若容器目录非空,会造成逻辑冲突,也就是怎样去同步宿主机目录和容器目录,解决两边文件的差异。因此只能挂载在容器中的空目录下。

tips

  • 若挂载的是目录,容器目录要为空目录
  • 若容器目录不存在,也可以挂载会自动创建
  • volumes基本规则->*文件夹:文件夹;文件:文件

只要指定目录挂载就会删除容器内的同名文件夹,例如:将mysql的配置目录映射出容器,就会被代替为宿主机的对应文件夹内容,无法在compose层面将原本的配置文件copy到宿主机。但是目前,docker-

compose不支持类似docker cp的功能将容器内的文件复制到宿主机。

可以参考GitHub上官方的提问:https://github.com/docker/compose/issues/5523

以及Stack Overflow上的提问:Https://stackoverflow.com/questions/39176561/copying-files-to-a-container-with-docker-compose

想要将容器内文件复制出容器的解决的方法只有通过手动或脚本执行docker cp。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: docker-compose:数据卷volumes挂载规则说明

本文链接: https://lsjlt.com/news/200052.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • docker-compose:数据卷volumes挂载规则说明
    目录案例compose前言结果概念理解tips总结案例compose # add this file # default MySQL root password is 123456 ...
    99+
    2023-03-19
    docker-compose docker数据卷挂载 docker volumes挂载
  • docker compose数据卷volumes挂载规则是什么
    今天小编给大家分享一下docker compose数据卷volumes挂载规则是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一...
    99+
    2023-07-05
  • Docker挂载资料卷保存MySQL数据
    简介 docker是运行在虚拟环境中的,这样会有一个问题,那就是储存在docker内的数据会随着docker的重启、宕机而丢失,从而造成不可估量的损失。 所以docker提供了-v指...
    99+
    2024-04-02
  • docker容器数据卷之具名挂载和匿名挂载问题
    目录什么是容器数据卷为什么需要容器数据卷使用如何查看是否使用了数据卷具名挂载和匿名挂载 指定路径挂载具名挂载匿名挂载容器与容器之间的数据共享 --volumes-from什...
    99+
    2024-04-02
  • docker容器数据卷的读写规则是什么
    这篇文章主要介绍“docker容器数据卷的读写规则是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“docker容器数据卷的读写规则是什么”文章能帮助大家解决问题。在docker创建容器,挂载目录...
    99+
    2023-07-05
  • docker run -v 挂载数据卷异常,容器状态一直是restarting的解决
    出现的问题: docker run 加上 -v 参数之后,容器就一直是 restarting 状态,去掉 -v 参数就可以正常运行 查找问题: 使用 docker logs 'co...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作