docker之网络篇

2023-05-16

前言

刚开始学习docker的时侯,启动容器时并没有指定网络,使用的是默认的bridge,也就是桥接的模式,这种模式下启动的容器间都是可以相互通信的,所以使用起来也是特别的爽,其实docker还有两外两种模式分别时host模式和none模式,host模式下容器没有自己的ip,它使用的是共享主机的ip,端口也是主机的端口,所以在启动容器时不需要指定端口映射,而none模式下IP和端口都是需要从头开始设置的,比较麻烦一般不用这种模式,下面就简单说说这三种网络模式的妙用。

1. bridge网络模式

为每一个容器分配IP,并将容器连接到docker0虚拟网桥,是docker容器默认的网络模式,容器之间也可以相互通信
在这里插入图片描述

2. host网络模式

容器将不会虚拟出自己的网卡,而是使用宿主机的IP和端口,如果这是启动一个tomcat容器,我们访问这个tomcat,直接使用主机IP:8080端口就可以访问了
在这里插入图片描述

例如启动容器使用host
docker run -d --name tomcat --network host 3f1d6082f0ba

3. none网络模式

容器有独立的Network namespace,但是并没有对其进行任何的网络设置,没有分配veth pair 、网桥连接以及ip等

4. container模式

新创建的容器不会创建自己的网卡和IP,而是和一个指定的容器共享IP和端口
在这里插入图片描述

例如新启动一台容器连共用已运行的某个容器的IP和端口
docker run -d --name tomcat --network container:已运行的容器名称或id 3f1d6082f0ba

5. 自定义网络

查看网络模式

docker network ls

创建自定义网络

通常使用中我们需要自定义创建网络,如果使用默认的bridge,当我们启动容器的时候没有指定ip的话,重启容器后容器的ip地址会发生改变,导致容器间通信会有问题,但是自定义网络很好的规避了这个问题,同样我们可以创建bridge的网络,启动容器时都连接入这个网络,即使重启这些容器后容器ip会发生改变,容器仍然可以通过容器的名字来相互通信,默认的bridge没有这个功能,这就是为什么要自定义网络了,这一点很重要。

不指定默认为bridge
docker  network create  custom
指定为bridge
docker network create --driver bridge custom
指定为host
docker network create --driver host custom
例如启动一个tomcat指定网络和IP地址
docker run -d --name tomcat -p 8100:8080 --network custom --ip 10.89.0.3  3f1d6082f0ba
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker之网络篇 的相关文章

随机推荐

  • docker搭建redis主从复制

    目录 1 docker拉取镜像2 启动两台redis容器3 查看容器状态4 查看两台容器的ip地址5 进入容器 xff08 从机 xff09 6 测试主从复制效果 1 docker拉取镜像 docker pull redis 6 0 8 2
  • java代码实现部门树以及任意树结构的获取

    表结构如下 SET NAMES utf8mb4 SET FOREIGN KEY CHECKS 61 0 Table structure for my dept DROP TABLE IF EXISTS 96 my dept 96 CREAT
  • docker搭建nacos集群

    目录 前言1 启动mysql5 7容器2 配置nacos config数据库 xff08 1 xff09 创建nacos config数据库 xff08 2 xff09 创建nacos的配置表 3 拉取nacos镜像4 启动nacos容器5
  • linux搭建nacos集群

    目录 前言1 准备mysql数据库2 准备nacos压缩包 xff08 1 xff09 下载nacos xff08 2 xff09 创建集群节点目录 xff08 3 xff09 修改集群配置文件 3 复制nacos到每个节点目录4 修改se
  • docker搭建mysql8.0主备(主从复制)

    目录 前言1 拉取mysql8 0 25镜像2 启动mysql容器3 修改配置文件4 进入主容器mysql5 进入从容器mysql6 测试主从复制效果 注意事项 xff1a 前言 由于最近项目中开始要用到mysql主备模式 xff0c 所以
  • window11系统安装

    目录 前言1 系统配置要求2 安装方式Windows 11 安装助手创建 Windows 11 安装媒体下载 Windows 11 磁盘映像 ISO 3 安装 微软官网下载地址 也可用迅雷下载 其他版本下载地址 xff08 可用迅雷下载 x
  • docker搭建consul集群

    目录 官方下载地址1 拉取 Consul 镜像2 启动consul主容器 xff08 搭建数据中心dc1 xff09 3 查询dc1中主容器IP地址4 启动其他容器并加入dc15 查看数据中心dc1节点6 启动consul主容器 xff08
  • docker搭建zookeeper集群

    目录 前言1 拉取镜像2 启动容器3 查看容器IP4 修改容器配置文件4 1 修改容器 xff08 10 88 0 19 xff09 的zoo cfg文件4 2 修改容器 xff08 10 88 0 20 xff09 的zoo cfg文件4
  • imagex工具整合window11的wim镜像

    目录 前言1 提取install wim镜像文件2 用wintool查看镜像文件3 用imagex整合镜像4 查看整合后的镜像5 替换install wim文件6 效果图 前言 window11镜像微软官网昨天刚刚发布出来 xff0c 现在
  • 制作window11系统U盘启动盘

    目录 前言1 U盘分区2 复制系统文件到U盘3 编辑bcd文件4 查看系统安装盘 xff08 U盘 xff09 前言 制作系统安装U盘需要使用到bootice这个工具 下载地址 xff0c 它主要是用来给U盘分区以及编辑bcd引导文件的 这
  • macOS Big Sur系统安装

    目录 前言系统安装U盘制作系统安装过程 前言 本次是在Vmware虚拟机用U盘启动盘来安装的macOS Big Sur 10 16版本 模仿实体机安装 xff0c 首先在虚拟机的macOS10 15系统中 xff0c 进入终端执行命令制作U
  • linux下安装nginx

    前言 nginx是一款高性能的 HTTP 和反向代理的web服务器 xff0c Nginx 可以作为静态页面的 web 服务器 xff0c 同时还支持 CGI 协议的动态语言 xff0c 但是不支持 java Java 程序只能通过与 to
  • js中获取当前点击的li标签以及li标签中a标签的id

    可以使用以下代码来获取当前点击的li标签的id xff1a document querySelectorAll 39 li 39 forEach function li li addEventListener 39 click 39 fun
  • linux下nginx的使用

    目录 前言1 nginx conf配置文件2 反向代理3 负载均衡4 动静分离5 高可用配置 前言 今天来说一下nginx的具体怎么使用 xff08 nginx安装参考这里 xff09 xff0c 主要包括反向代理 负载均衡 动静分离以及高
  • docker命令详解

    docker命令集 命令说明容器生命周期管理run创建一个新容器并运行start开启一个容器并使其在后台运行stop停止一个容器restart重启一个容器kill杀掉一个容器进程rm删除容器pause暂停容器unpause恢复暂停容器cre
  • redis常见问题与解决方案

    文章目录 缓存穿透 问题描述解决方案 缓存击穿 问题描述解决方案 缓存雪崩 问题描述解决方案 缓存穿透 问题描述 key 对应的数据在数据源并不存在 xff0c 每次针对此 key 的请求从缓存获取不到 xff0c 请求都会压到数据库 xf
  • jar包里面文件修改

    目录 前言1 解压jar包2 编辑要修改的配置文件3 重新生成jar包4 替换 前言 之前认为只要用解压软件打开包 xff0c 把里面要修改的配置文件提取出来编辑完成后直接替换掉jar包里原来的文件就好 xff0c 但实际项目中这样做很可能
  • javaweb项目字符集设置

    目录 前言1 编辑idea的VM Options属性文件2 idea的settings设置3 idea中tomcat设置4 tomcat字符集设置 前言 今天主要来讲一下在idea开发java web项目中怎么统一字符集 xff0c 乱码在
  • maven

    目录 1 maven安装1 1 maven下载1 2 配置maven环境变量1 3 settings配置文件 2 maven使用2 1 maven项目的层级结构2 2 maven工作方式2 3 maven生命周期2 4 maven命令2 5
  • docker之网络篇

    前言 刚开始学习docker的时侯 xff0c 启动容器时并没有指定网络 xff0c 使用的是默认的bridge xff0c 也就是桥接的模式 xff0c 这种模式下启动的容器间都是可以相互通信的 xff0c 所以使用起来也是特别的爽 xf