docker目录挂载的新语法小结

 更新时间:2025年01月07日 11:05:11   作者:灰色人生qwer  
本文主要介绍了docker目录挂载的新语法小结,详细的介绍了两种挂载目录的区别,具有一定的参考价值,感兴趣的可以了解一下

这两种挂载目录和文件的写法有什么不同吗?

--mount type=bind,src=/path-on-host-machine/my.cnf,dst=/etc/my.cnf

-v /path-on-host-machine/my.cnf:/etc/my.cnf

解答:

这两种写法在功能上有相似之处,都是将主机上的文件或目录挂载到 Docker 容器中,但它们之间有一些重要的区别。具体来说:

1. --mount 和 -v 的区别:

–mount 语法:

--mount type=bind,src=/path-on-host-machine/my.cnf,dst=/etc/my.cnf
  • –mount 是 Docker 1.13 版本及以后引入的标准语法,提供了更为灵活、清晰和功能强大的挂载选项。
  • 它的语法要求显式指定挂载的类型(type=bind),源路径(src)和目标路径(dst)。
  • –mount 语法更具可读性,并且适用于 Docker 的各种类型的挂载(bind、volume、tmpfs)。

-v 语法:

-v /path-on-host-machine/my.cnf:/etc/my.cnf
  • -v(或者 --volume)是 Docker 的早期语法,虽然它也可以用于挂载本地文件(bind 类型),但相对于 --mount 来说,它的功能上有一些局限。
  • -v 更简洁,但不如 --mount 语法那么灵活,因为它不要求你明确指定挂载类型,默认是 volume 类型,且不那么清晰。

2. 区别的关键点:

  • 语法和清晰度:

  • –mount 语法需要你显式地指定挂载类型(bind 或 volume 等),并且通过 src 和 dst 来明确源路径和目标路径。

  • v 语法更加简洁,但是没有显示地声明挂载类型(默认是 volume),并且不那么直观。

  • 功能灵活性:

  • –mount 提供了更强的灵活性,支持 bind、volume 和 tmpfs 类型的挂载,并且能够更好地支持容器间的不同挂载方式。

  • -v 只支持 volume 和 bind 类型的挂载,而且无法像 --mount 那样为挂载指定更多的细节和配置(如只读挂载、挂载选项等)。

  • 一致性:

  • –mount 是更现代和一致的方式,推荐在新的 Docker 版本中使用,因为它提供了更多的选项和清晰的语法。

  • -v 仍然被广泛使用,尤其在旧代码或一些简化场景中,但相较于 --mount 在一些复杂场景下会显得不够灵活。

3. -v 对 bind 挂载的支持:

实际上,-v 语法也可以用来绑定挂载,和 --mount 的 type=bind 一样,例如:

-v /path-on-host-machine/my.cnf:/etc/my.cnf

这条命令会将主机路径 /path-on-host-machine/my.cnf 挂载到容器的 /etc/my.cnf,等效于 --mount type=bind,src=/path-on-host-machine/my.cnf,dst=/etc/my.cnf。

4. 其他附加选项:

  • 使用 --mount 时,能更好地支持附加的选项,例如:
--mount type=bind,src=/path-on-host-machine/my.cnf,dst=/etc/my.cnf,readonly

上述命令会让挂载的文件成为只读,这在 -v 语法中不能直接指定。

总结:

  • 功能上:两者的作用是一样的,都是将主机上的文件挂载到容器中。

  • 语法上:–mount 提供了更清晰、灵活的语法,推荐用于复杂的挂载场景,而 -v 是简化语法,适用于简单场景。

  • 使用建议:对于更复杂的挂载需求(例如需要指定挂载类型、只读挂载等),建议使用 --mount。对于简单的文件或目录挂载,-v 也足够简洁有效。

到此这篇关于docker目录挂载的新语法小结的文章就介绍到这了,更多相关docker目录挂载内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • Docker中Dockerfile制作镜像的方法步骤

    Docker中Dockerfile制作镜像的方法步骤

    本文主要介绍了Dockerfile制作镜像的方法步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Docker的安装方法及运行Docker Swarm模式的使用

    Docker的安装方法及运行Docker Swarm模式的使用

    本文给大家简单介绍docker的安装以及1.12版本的swarm模式的使用,包括docker的安装和配置,对docker swarm简单使用感兴趣的朋友一起看看吧
    2016-11-11
  • MacOS使用Docker创建MySQL主从数据库的方法

    MacOS使用Docker创建MySQL主从数据库的方法

    这篇文章主要介绍了MacOS使用Docker创建MySQL主从数据库,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • 解决docker拉取mysql镜像太慢的情况

    解决docker拉取mysql镜像太慢的情况

    这篇文章主要介绍了解决docker拉取mysql镜像太慢的情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Docker 运行多个Springboot的详细教程

    Docker 运行多个Springboot的详细教程

    这篇文章主要介绍了Docker 运行多个Springboot的详细教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Docker如何修改容器已经映射的端口

    Docker如何修改容器已经映射的端口

    在项目中我们一般通过命令启动一个容器的时候,通常会通过命令指定容器与物理机网络端口的映射,这篇文章主要给大家介绍了关于Docker如何修改容器已经映射的端口的相关资料,需要的朋友可以参考下
    2023-12-12
  • docker overlay扩容问题

    docker overlay扩容问题

    这篇文章主要介绍了docker overlay扩容问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • 如何查看docker容器的内存占用

    如何查看docker容器的内存占用

    这篇文章主要介绍了如何查看docker容器的内存占用问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • Docker安装Oracle创建表空间并导入数据库完整步骤

    Docker安装Oracle创建表空间并导入数据库完整步骤

    Docker提供了一种简便的方式,通过容器化我们可以在任何支持Docker 的环境中快速部署Oracle数据库,这篇文章主要介绍了Docker安装Oracle创建表空间并导入数据库的相关资料,需要的朋友可以参考下
    2025-04-04
  • 在Linux系统中安装Docker的过程

    在Linux系统中安装Docker的过程

    这篇文章主要介绍了如何在Linux系统中安装Docker,其实安装docker真的很简单,只需要几条命令就可以完成了,本文给大家介绍的非常详细,需要的朋友可以参考下
    2021-12-12

最新评论