docker网络、容器间互联互通

您所在的位置:网站首页 容器有ip地址吗怎么查 docker网络、容器间互联互通

docker网络、容器间互联互通

2024-07-13 13:05| 来源: 网络整理| 查看: 265

在安装docker时,默认会自动创建三个网络,bridge(默认使用)、none、host

下面分别介绍三种网络: host:直接使用物理机的IP和端口,容器没有自己的网卡

none:关闭网络功能

bridge:为每个容器分配IP地址,并将容器网卡连接到docker0虚拟网桥上,通过iptables的nat表与主机通信

创建自定义网络 :

# 自定义网络名称为localnetwork,IP地址段为172.20.0.0/24 [root@localhost ~]# docker network create --subnet 172.20.0.0/24 localnetwork ac4f294a95f7f8787e38eef0b466ec69c35cb04157081240e1c6b37ef4b91567 [root@localhost ~]# docker network ls NETWORK ID NAME DRIVER SCOPE e28aeaffefe5 bridge bridge local 29c17110817b host host local ac4f294a95f7 localnetwork bridge local 26f1293fa81e none null local

大致的原理图如下所示: 在这里插入图片描述

docker有关网络的一些命令:

# 查看一个网络的信息 docker network inspect [OPTIONS] NETWORK [NETWORK...] # 将一个容器连接到网络 docker network connect [OPTIONS] NETWORK CONTAINER # 使容器与一个网络断开 docker network disconnect [OPTIONS] NETWORK CONTAINER # 删除一个/多个网络 docker network rm NETWORK [NETWORK...]

在docker run命令中

–network 指定网络

–ip 在自定义网络中指定容器IP地址

两个容器如在同一个网络中,通过IP地址是可以实现互相访问的,但容器间通信还可以使用容器名互相通信,而不是使用IP地址

docker run --rm --name test1 -it centos:7 bash

创建名为test1的容器

docker run --rm -it --link test1:test1 centos:7 bash

在创建一个容器,docker run命令中加入–link参数,把test1容器做了主机映射

在容器中查看hosts文件

cat /etc/hosts …… 172.17.0.2 test1 c68109ea44eb

ping test1试试

ping test1 PING test1 (172.17.0.2) 56(84) bytes of data. 64 bytes from test1 (172.17.0.2): icmp_seq=1 ttl=64 time=0.095 ms 64 bytes from test1 (172.17.0.2): icmp_seq=2 ttl=64 time=0.056 ms ^C

能ping通!实现容器间通信

若实现跨主机间的容器通信,可移步到我的博客 openswtich实现跨主机通信



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3