Docker的网络模式简介
  Il1dbC9Jhbvl 2023年11月02日 34 0

1)docker网络常用命令

查看docker的网络模式

docker network ls

Docker的网络模式简介_docker

docker网络常用命令参数

connect 	#连接容器到网络   
create      #创建网络
disconnect  #断开容器与网络的连接
inspect     #显示一个或多个网络的详细信息
ls          #列出所有网络
prune       #删除所有未使用的网络
rm          #移除一个或多个网络

2)docker网络主要用途

容器间的互联通讯以及端口映射

容器IP变动时可以通过服务名直接网络通信而不受影响

3)docker网络模式

网络模式

简介

bridge

为每个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥中,系统默认为该模式。

host

容器将不会虚拟出自己的网卡,配置自己的IP,而是直接使用宿主机的IP和端口

none

容器有独立的Network namespace,单并没有对其进行任何的网络设置。

container

新创建的容器不会创建自己的网卡和配置自己的IP,而是和一个指定的容器共享IP与端口范围等

网络模式配置方法

bridge: #使用--network bridge指定,默认使用docker0
host:#使用--network host指定
none:#使用--network none指定
container:#使用--network container:NAME或者容器ID指定
(1)docker网络之bridge模式

Docker的网络模式简介_docker_02

Docker服务默认会创建一个docker0网桥,它在内核层连通了其他的物理或虚拟网卡,将所有容器和本地主机都放在同一个网络内。让主机和容器之间可以通过网桥互相通信。

docker0上面的veth与容器内部的eth0网卡两两配对,一 一匹配。

#创建实例
docker run -it --name r1 centos
docker run -it --name r2 centos

网卡两两匹配验证(如下图所示,容器内部网卡eth与宿主机的veth一 一匹配)

Docker的网络模式简介_docker_03

Docker的网络模式简介_docker_04

Docker的网络模式简介_docker_05

(2)docker网络之host模式

host模式下容器会直接使用宿主机的IP与外界进行通讯,不再需要额外进行NAT转换。

容器将不会获得一个独立的网络空间,而是和宿主机共用一个网络空间。容器不会虚拟出自己的网卡而是使用宿主机的IP和端口。

Docker的网络模式简介_docker_06

创建实例

#指定网络模式为host
docker run -itd --name host6 --network host centos:latest

在宿主机查看容器网络信息

docker inspect 容器ID或容器名

Docker的网络模式简介_docker_07

进入容器内部再次查看网络信息

docker exec -it host6 /bin/bash

host模式下与宿主机共用IP与端口

Docker的网络模式简介_docker_08

直接通过宿主机IP访问容器的80端口。

#安装httpd服务
yum install httpd -y
#写入内容
 echo "this is docker-Apache" >/var/www/html/index.html

Docker的网络模式简介_docker_09

(3)docke网络的none模式

在none模式下,不为任何docker容器进行网络配置,并且只有一个本地回环口(127.0.0.1)。需要我们自己为Docker容器添加网卡,配置IP信息等。

#创建none模式下的容器
docker run -itd --name none1 --privileged --network none centos:latest /usr/sbin/init

进入容器内部查看网卡信息,只有一个本地回环口无其他任何网络信息。

Docker的网络模式简介_docker_10

(4)docker网络的container模式

新建的容器和已经存在的容易共享一个网络IP而不是和宿主机共享。并且新创建的容器不会创建自己的网卡,配置自己的IP而是和一个指定的容器共享IP、端口范围等。两个容器除了网络方面,其他都是隔离开的。

Docker的网络模式简介_docker_11

使用container模式让centos1与centos2容器共用一个IP

#创建centos1
docker run -d --name centos1 --privileged=true centos:latest /usr/sbin/init
#让cewntos2与centos1共享IP
docker run -d --name centos2 --network container:centos1 --privileged=true centos:latest /usr/sbin/init

查看两个容器的网络信息

Docker的网络模式简介_docker_12

如果容器centos1停止运行,那么容器centos2的网络信息就会丢失只剩下本地回环口

Docker的网络模式简介_docker_13

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  wwLZeziuqjLR   2023年12月11日   32   0   0 Dockercentos
  MCWYWqSAMsot   2023年12月11日   33   0   0 Docker
  LE2wsiBPlOhg   2023年12月06日   33   0   0 Dockercentos
  DnoStTHsc0vp   2023年12月11日   27   0   0 Docker
  wwLZeziuqjLR   2023年12月08日   103   0   0 Dockercentosbash
  wwLZeziuqjLR   2023年12月07日   36   0   0 Dockercentos