Docker——自定义网络实现

简介: Docker——自定义网络实现

Docker——自定义网络实现

1、自定义网络实现容器互联

四类网络模式,使用docker network ls查看docker网络模式

Docker网络模式 配置 说明
host模式 –net=host 容器和宿主机共享Network namespace。
container模式 –net=container:NAME_or_ID 容器和另外一个容器共享Network namespace。 kubernetes中的pod就是多个容器共享一个Network namespace。
none模式 –net=none 容器有独立的Network namespace,但并没有对其进行任何网络设置,如分配veth pair 和网桥连接,配置IP等。
bridge模式 –net=bridge 桥接模式(默认为该模式)

--net=bridge 这个是默认值,连接到默认的网桥。

--net=host 告诉 Docker 不要将容器网络放到隔离的名字空间中,即不要容器化容器内的网络。此时容器使用本地主机的网络,它拥有完全的本地主机接口访问权限。容器进程可以跟主机其它 root 进程一样可以打开低范围的端口,可以访问本地网络服务比如 D-bus,还可以让容器做一些影响整个主机系统的事情,比如重启主机。因此使用这个选项的时候要非常小心。如果进一步的使用 --privileged=true,容器会被允许直接配置主机的网络堆栈。

--net=container:NAME_or_ID 让 Docker 将新建容器的进程放到一个已存在容器的网络栈中,新容器进程有自己的文件系统、进程列表和资源限制,但会和已存在的容器共享 IP 地址和端口等网络资源,两者进程可以直接通过 lo 环回接口通信。

--net=none 让 Docker 将新容器放到隔离的网络栈中,但是不进行网络配置。之后,用户可以自己进行配置。

自定义网络

# --driver bridge 桥接模式

# --subnet 192.168.0.0/16 子网络网段

# --gateway 192.168.0.1 网关

# mynet 网络名

docker network create --driver bridge --subnet192.168.0.0/16 --gateway192.168.0.1 mynet

QQ截图20211228103726.png

查看自定义的网络信息:

docker network inspect mynet

QQ截图20211228104502.png

在自定义的网路中创建容器

docker run -d-P--name tomcat01-net-01 --net mynet tomcat

docker run -d-P--name tomcat01-net-02 --net mynet tomcat

QQ截图20211228104822.png

再次查看自定义的网络信息:发现新创建的两个容器添加进网络中了。

QQ截图20211228104931.png

使用rongqiming互相进行ping测试

tomcat01-net-01 ping tomcat01-net-02:

QQ截图20211228105640.png

tomcat01-net-02ping tomcat01-net-01:

QQ截图20211228105951.png

现在不使用 --link 容器间也可以互相 ping 通了,容器间可以互相通信。

2、网络连通

需求分析图

QQ截图20211228112137.png

创建tomcat01和tomcat02两个容器:

docker run -d-P--name tomcat01 tomcat

docker run -d-P--name tomcat02 tomcat

QQ截图20211228112315.png

很明显,直接ping通是不可能的,需要先把tomcat01容器和mynet网络连通。

docker network connect

docker network connect 命令是用于将 docker 容器连接到某个网络中,可以使用容器名或者容器ID。

用法:

docker network connect [OPTIONS] NETWORK CONTAINER

把tomcat01容器连接到mynet网络上:

docker network connect mynet tomcat01

查看mynet的网络信息:docker inspect mynet

QQ截图20211228141732.png

tomcat01已经连接到mynet网络上,像tomcat01-net-tomcat01和tomcat01-net-tomcat02一样。

此时,tomcat01已经和mynet网络中的两个容器连接起来,因为这三个容器处于同一网络中,当然可以互相通信:

QQ截图20211228142539.png

一个容器两个网络:

查看tomcat01的元数据:docker inspect tomcat01

QQ截图20211228143300.png

tomcat01连接到自定义的mynet网络后,就有两个网络了。


相关文章
|
3天前
|
运维 安全 Linux
深入理解Docker自定义网络:构建高效的容器网络环境
深入理解Docker自定义网络:构建高效的容器网络环境
|
3天前
|
Java Linux 数据安全/隐私保护
Docker自定义JDK镜像并拉取至阿里云镜像仓库全攻略
Docker自定义JDK镜像并拉取至阿里云镜像仓库全攻略
|
3天前
|
存储 弹性计算 运维
Docker数据集与自定义镜像:构建高效容器的关键要素
Docker数据集与自定义镜像:构建高效容器的关键要素
|
3天前
|
运维 Linux 虚拟化
Docker详解(十四)——Docker网络类型详解
Docker详解(十四)——Docker网络类型详解
16 0
|
4天前
|
监控 网络协议 数据安全/隐私保护
运用自定义协议设计与实现“跨网络计算器”
运用自定义协议设计与实现“跨网络计算器”
24 3
|
4天前
|
Kubernetes Docker 容器
【Docker专栏】Docker网络配置详解:从Bridge到Overlay
【5月更文挑战第7天】本文介绍了Docker的四种网络类型:Bridge(默认,每个容器连接虚拟桥)、Host(容器共享宿主机网络命名空间)、Overlay(跨宿主机通信,适合集群环境)和Macvlan(容器直接连接物理网络)。Bridge网络适用于同主机通信,而Overlay适合多主机集群。Host网络缺乏隔离,Macvlan则让容器直接连到外部网络。理解这些网络类型有助于优化Docker容器的网络配置。
【Docker专栏】Docker网络配置详解:从Bridge到Overlay
|
20天前
|
运维 前端开发 Devops
云效产品使用报错问题之流水线打包docker镜像时报网络代理有问题如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
监控 安全 Docker
《Docker 简易速速上手小册》第6章 Docker 网络与安全(2024 最新版)
《Docker 简易速速上手小册》第6章 Docker 网络与安全(2024 最新版)
30 0
|
1月前
|
关系型数据库 MySQL 数据库
docker自定义安装mysql 5.7
docker自定义安装mysql 5.7
26 0
|
1月前
|
NoSQL 应用服务中间件 Linux
docker网络
docker网络