首页 > 其他分享 >Docker 网络和存储

Docker 网络和存储

时间:2024-09-15 11:51:47浏览次数:19  
标签:容器 存储 网络 Docker my docker

Docker 的网络和存储功能是其重要的组成部分,它们分别处理容器之间的通信和数据持久化。下面我们逐一介绍 Docker 的网络和存储。

Docker 网络

Docker 提供了一套灵活且强大的网络选项,用于处理容器间、容器与主机及容器与外部网络的连接需求。

网络类型

  1. **Bridge 网络(桥接网络)**:

    • 默认情况下,Docker 容器会被连接到 bridge 网络。这种类型的网络通过 NAT(网络地址转换)将容器连接到宿主机上的一个网桥上,每个容器都有自己独立的 IP 地址。
    • 容器可以通过其名称来互相访问,但是不同桥接网络中的容器无法直接互访。
  2. Host 网络

    • 使用 Host 网络模式,容器将不会有自己的网络命名空间,容器的网络栈和主机共享。即容器与主机共用一个 IP 地址。
    • 适用于需要高性能网络通信的应用,因为它消除了容器与主机之间的网络翻译开销。
  3. None 网络

    • 使用 None 网络,容器有自己的网络命名空间,但没有分配的网络接口。主要用于完全自定义网络设置的场景。
  4. Overlay 网络

    • Bridge 网络通常局限于单个宿主机,而 Overlay 网络用于跨多宿主机的容器通信。主要用于 Swarm 或 Kubernetes 中,以实现跨节点容器通信。
  5. Macvlan 网络

    • Macvlan 通过为每个容器分配一个唯一的 MAC 地址,使其看起来像一个物理设备。这适用于一些对网络性能要求极高的场景。

创建和管理网络

  1. 创建自定义网络:
docker network create my_bridge_network
  1. 将容器连接到自定义网络:
docker run -it --network my_bridge_network --name my_container ubuntu:20.04 /bin/bash
  1. 查看所有网络:
docker network ls
  1. 查看网络详情:
docker network inspect my_bridge_network
  1. 删除网络:
docker network rm my_bridge_network

Docker 存储

Docker 提供了多种方式来持久化数据,以保证容器重启或删除后数据不会丢失。

存储类型

  1. **Volumes(数据卷)**:

    • 数据卷是由 Docker 管理的一种最佳方式,可以在多个容器之间共享和重用。数据卷的生命周期独立于任何一个容器,且存储位置由 Docker 自动管理。
    • 数据卷可以通过 docker volume 命令进行创建、删除和管理。
  2. **Bind mounts(绑定挂载)**:

    • 绑定挂载将主机文件系统的特定目录挂载到容器内。绑定挂载的存储位置是由用户提供的,适合需要在宿主机和容器之间共享文件的场景。
    • 主机文件系统的改动会立即反映到容器内,反之亦然。
  3. tmpfs mounts

    • tmpfs 挂载存储在主机系统的内存中,而不是磁盘上。主要用于需要高性能和不需要持久化的临时数据。

创建和使用存储

  1. 创建数据卷:
docker volume create my_data_volume
  1. 查看所有数据卷:
docker volume ls
  1. 将数据卷挂载到容器:
docker run -it -v my_data_volume:/data --name my_container ubuntu:20.04 /bin/bash
  1. 绑定挂载主机目录:
docker run -it -v /path/on/host:/path/in/container --name my_container ubuntu:20.04 /bin/bash
  1. 删除数据卷:
docker volume rm my_data_volume

存储示例

假设有一个需要持久化数据的 MySQL 容器:

  1. 创建数据卷:
docker volume create mysql_data
  1. 运行 MySQL 容器并挂载数据卷:
docker run -d \
  --name my_mysql \
  -e MYSQL_ROOT_PASSWORD=my-secret-pw \
  -v mysql_data:/var/lib/mysql \
  mysql:5.7

以上命令启动了一个 MySQL 容器,并将数据库文件存储在 mysql_data 卷中,无论容器是否删除,卷中的数据都不会丢失。

总结

Docker 的网络和存储功能为容器化应用提供了强大的支持。网络方面,Docker 提供了多种网络类型来满足不同场景下的通信需求;存储方面,Docker 提供了数据卷和绑定挂载等多种方式来持久化数据,实现数据共享。

通过合理配置 Docker 的网络和存储,可以显著提高应用的灵活性和可扩展性,更加高效地管理容器化应用。希望本文能帮助你更好地理解和使用 Docker 的网络和存储功能。

标签:容器,存储,网络,Docker,my,docker
From: https://blog.51cto.com/u_16123429/12023712

相关文章

  • 整数在内存中的存储&&原码反码补码
    目录1.整数在内存中以二进制的形式存在1.1(正数存储情况)1.2负数存储情况1.3整数的补码如何得到原码2.无符号整数的原反补码 小心!VS2022不可直接接触,否则!没这个必要,方源面色淡然一把抓住!顷刻炼化! 1.整数在内存中以二进制的形式存在1.1(正数存储情况)比如说数字2......
  • char 的整数存储解释
    目录1.原因讲解1.有符号类型的char2.无符号类型的char(0-255) 练习题1. 练习题2.练习题3.小心!VS2022不可直接接触,否则!没这个必要,方源面色淡然一把抓住!顷刻炼化! 1.原因讲解1.有符号类型的char我们知道char类型只有一个字节,一个字节是8bit位在计算机中,计算机......
  • 【网络安全】漏洞挖掘之CVE-2019-9670+检测工具
    未经许可,不得转载。文章目录漏洞介绍正文工具漏洞介绍CVE-2019-9670是一个与ZimbraCollaborationSuite(ZCS)相关的严重漏洞。ZCS中的AutoDiscover服务存在不正确的XML解析处理,该漏洞可被利用来注入恶意XML代码(例如外部实体注入(XXE)攻击),从而导......
  • 蓝易云服务器 - ubuntu docker日志docker ubuntu desktop
    在Ubuntu桌面上使用Docker时,可以通过以下步骤查看Docker容器的日志:打开终端:在Ubuntu桌面上按下 Ctrl+Alt+T组合键可以打开终端。查看容器ID:运行以下命令查看正在运行的Docker容器的ID。dockerps查看容器日志:使用以下命令查看指定容器的日志,将 CONTAINER_ID替换为你想查看日......
  • 大语言模型特供版汉字:基于部首分解与图神经网络的多因素表示
    汉字嵌部首,图卷蕴深机。嵌入相结合,结构见玄机。泛化能力强,共享共根基。针对汉字在新环境下的调整,本文提出了一种结合传统字符嵌入与部首结构的图表示法,以捕捉汉字的语义和组成结构,专供大模型理解汉字。该方法通过将字符分解为部首并构建图表示,利用图卷积网络生成部首嵌入,并......
  • 9、【实战中提升自己】华为 华三中小型企业网络架构搭建 【无线架构之低速率限制与负
     1 拓扑与说明         某公司的网络架构,这样的架构在目前的网络中是在常见的,假设您接收一个这样的网络,应该如何部署,该实战系列,就是一步一步讲解,如何规划、设计、部署这样一个环境,这里会针对不同的情况给出不同的讲解,比如拓扑中有2个ISP,假设客户需求是,想实现主备的......
  • String存储原理
    1.是什么        在Java中,String是一种特殊的类,它是不可变的并且存储在堆内存中。为了理解String的存储原理,我们需要分解几个关键概念:不可变性、堆内存、字符串常量池和垃圾回收机制。下面我将详细解释这些概念并举例说明。不可变性(Immutability)    Stri......
  • 【数据挖掘】神经网络
    目录一、神经网络算法概述二、神经网络算法分类三、神经网络算法优缺点和改进3.1神经网络算法优点3.2神经网络算法缺点3.3 神经网络算法改进四、神经网络算法实现4.1 神经网络算法C语言实现4.2 神经网络算法JAVA实现4.3 神经网络算法python实现4.4 神经网络......
  • 【视频讲解】线性时间序列原理及混合ARIMA-LSTM神经网络模型预测股票收盘价研究实例
    原文链接:https://tecdat.cn/?p=37702 原文出处:拓端数据部落公众号 分析师:DongzhiZhang 近年来人工神经网络被学者们应用十分广泛,预测领域随着神经网络的引入得到了很大的发展。本文认为单一神经网络模型对序列所包含的线性信息和非线性信息的挖掘是有限的,因此本文为了进一......
  • 前端网络请求库:Axios
    目录1.网络请求的基本概念1.1网络请求的基础HTTP协议1.2HTTP工作原理1.3TCP连接1.31建立TCP连接1.31关闭TCP连接1.4HTTP的请求方法1.5HTTP的响应状态码分类1.6.前端网络请求方式2.Axios在在vue项目中的使用 2.1安装与使用2.2Axios使用HTTP请求方法2.2......