Docker 的 Network 和 Volume

阅读时长 5 分钟读完

Docker 是一种流行的容器化平台,它允许开发者将应用程序和其依赖项打包在一个轻量级、可移植的容器中。Docker 容器允许开发者在不同的环境中运行他们的应用程序,而无需担心环境差异性和兼容性问题。Docker 的 Network 和 Volume 是其核心特性之一,提供了高度可定制和灵活的容器管理方案。

Docker Network

Docker Network 是一个用于容器之间通信和数据传输的虚拟网络。在 Docker 中,每个容器都是一个独立的网络实体,有它们自己的 IP 地址和网络栈。Docker Network 允许我们创建自定义网络,从而实现容器间安全通信,而无需在容器之间暴露端口。

常用类型

bridge(默认)

Docker 默认创建的网络类型就是 bridge 类型。当容器创建时,Docker 引擎会自动创建并连接到一个默认的“bridge”网络。该网络提供了容器之间的相对隔离和基本的网络连接。bridge 类型的网络可以通过以下命令进行创建和连接:

host

host 类型的网络允许容器共享主机的网络栈,也就是说,容器和主机拥有了相同的 IP 地址,容器可以直接通过 IP 地址访问主机上的网络服务,从而实现了更高的网络性能和吞吐量。host 类型的网络可以通过以下命令进行创建和连接:

自定义网络

自定义网络允许我们创建自定义的容器网络,从而实现对容器之间的网络连接和通信进行更细粒度的控制。自定义网络可以通过以下命令进行创建和连接:

Docker Volume

Docker Volume 是一种用于数据持久化的机制,提供了容器内外之间数据共享和数据管理的方法。Docker Volume 允许我们将一个主机上的目录或者文件系统挂载到容器内部的特定路径中,从而实现持久化存储。Docker Volume 还允许我们创建一种独立于容器的存储方案,该方案可以在容器重启,甚至是在容器删除后仍然存在。

常用类型

named volume

named volume 是一种可以标准化管理的 Docker Volume 类型,可以通过 Docker Engine 的 API 进行管理和控制。named volume 还支持多个容器之间共享数据,可以通过以下命令进行创建和连接:

bind mount

bind mount 是一种将主机上的目录或者文件系统挂载到容器内部的特定路径中的方法,从而实现了容器内外之间数据的共享。bind mount 可以做到随时随地与主机同步,但是对主机目录的引用会带来安全风险。bind mount 可以通过以下命令进行挂载:

总结

Docker Network 和 Volume 是 Docker 中非常重要的两个特性,它们提供了容器间通信和数据传输、数据持久性和容器可移植性的解决方案。掌握这些概念和技术,可以让我们更好的管理 Docker 容器,提高容器的安全性和灵活性。

示例代码

创建一个自定义网络并连接多个容器

-- -------------------- ---- -------
- ------ --------- - ------- ----
- ------ ------- ------ -------- ------- ---------

- ---- ----- -------- --------- --
- ------ --- ------ ----- --------- --------- -- -----

- ---- ----- -------- --------- --
- ------ --- ------ ----- --------- --------- -- -----

- ---- ----- -------- --------- --
- ------ --- ------ ----- --------- --------- -- ------------------------ -- -----

创建一个 named volume 并在容器中使用

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6504272a95b1f8cacd0e3773

纠错
反馈