您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页Docker生产必备——容器通信

Docker生产必备——容器通信

来源:二三娱乐

简介

在接触docker的第一天起,大家应该就知道,docker容器使用沙箱机制,相互之间没有接口,一般情况下内部访问通过IP+端口。本地容器默认分配的IP极易发生变化,所以靠IP+端口访问的方式缺失稳定性。单机模式暂且不讲,集群模式下容器间的通信仅通过内部IP是无法访问的。docker给出解决方案是link和network,本文介绍一下network(link操作会复杂化容器之间的关系,而且很快也会被废弃)。

Network

network可以称之为网桥,如果给不同容器指定了相同网桥,那么它们之间是可以相互访问的。

使用以下命令查看docker的网桥:

docker network ls

图A

这三个是默认的。在默认情况下,所有容器创建时都会被指派到bridge(这里说的是name而非driver)网桥下,使用以下命令查看bridge信息:

docker inspect bridge

在海量的信息中找到Containers节点,这个节点内存储了包含在本网桥下的所有容器。因为同在一个网桥下,所以访问是没问题的(容器asp_net_core是web应用,mysql01是数据库,nginx001是web服务器,彼此关联):

网桥类型

如图A所示,默认的网桥类型有三种:bridge、host、none。

bridge类似于虚拟机内网模式,host代表直接使用宿主机网络,none表示容器不使用任何网络。

假设你的服务器IP为 127.0.0.1 ,内有容器A和B,其中A在host模式网桥下,B在bridge模式网桥下,那么你访问A可以直接使用 127.0.0.1:对应端口,访问B则需要先使用-p指令将服务器IP映射到B中。

常用命令

新建

docker network create [-d 网桥类型] 网桥别名

可以使用-d更改类型,如果不使用-d命令,则默认bridge。

删除

docker network rm 网桥别名

查看列表

docker network ls

查看详情

docker inspect 网桥别名

给新容器指定网桥

docker run --name 容器别名 --network 网桥别名 镜像名:版本/镜像ID

PS:不影响如-v -p等命令的使用

将已有容器加入网桥

docker network connect 网桥别名 容器别名/容器ID

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务