docker--扩展学习-网络--命令--15

docker–扩展学习-网络–命令–15


1、创建网络

1.1、简单创建容器

# 创建
docker network create net111
# 查看
docker network inspect net111

在这里插入图片描述

在这里插入图片描述

1.2、指定参数创建容器

# ----创建----
docker network create -d bridge \
# 指定子网络,在bridge网络中只可以指定一个子网络,而在overlay网络中支持多个子网络。
--subnet=192.168.0.0/16 \
# 指定网关
--gateway=192.168.0.100 \
# 指定IP 范围
--ip-range=192.168.1.0/24 \
--aux-address="my-switch=192.168.1.6" \
net333

 
# ----查看----
docker network inspect net333

在这里插入图片描述

在这里插入图片描述

2、将容器连接到网络

docker network connect networkName containerName
 
  1. 将containerName容器连接到networkName网络中
  2. 1个容器可以连接到多个不同网络驱动的网络中

2.1、创建两个容器,c1 和 c2

# 加入默认bridge网络
docker run -itd --name=c1 busybox
# 加入默认bridge网络
docker run -itd --name=c2 busybox

在这里插入图片描述

2.2、创建一个网络 net444


docker network create -d bridge --subnet 172.26.0.0/16 net444

2.3、c2 容器 连接网络 net444

# 容器连接网络
docker network connect net444 c2
 
# 查看网络
docker network inspect net444

在这里插入图片描述

c2,自动分配到了IP地址。此时c1,仍然连接在默认的bridge网络。

2.4、启动容器c3,且指定IP地址


# 指定网络是net444,IP是 172.26.3.3
docker run --network=net444 --ip=172.26.3.3 -itd --name=c3 busybox

# 查看网络
docker network inspect net444

在这里插入图片描述

2.5、c2的网络

c2创建的时候,默认加入bridge网络,我们手动连接了网络net444,这个时候c2有2个网络

在这里插入图片描述

# 进入正在运行的容器
docker attach c2
# 查看网络
ifconfig

在这里插入图片描述

2.6、可以通过容器名称访问网络

# 进入正在运行的容器
docker attach c2
 
同一网络支持

c2和c3都在net444网络

在这里插入图片描述

不同网络不支持

c1在bridge网络
c2在net444网络

在这里插入图片描述

3、断开容器的网络

断开c2和net444网络的连接

# 断开网络
docker network disconnect net444 c2


# 查看网络
docker network inspect net444

在这里插入图片描述

4、删除网络

4.1、删除指定名称的网络

# 创建
docker network create net555
# 删除
docker network rm  net555

在这里插入图片描述

4.2、删除全部未使用的网络

docker network prune

在这里插入图片描述

5、列出Docker主机上的全部网络

docker network ls

在这里插入图片描述

6、网络别名

6.1、创建容器时指定

# 创建
docker network create net666
# 创建容器指定网络别名是alias_666
docker run --network=net666 --network-alias alias_666 -itd --name=c5 busybox
# 进入容器
docker attach c5
# ping  网络别名 alias_666
ping alias_666

在这里插入图片描述

6.2、创建容器之后追加网络别名

在这里插入图片描述

7、查看路由

route -n

在这里插入图片描述

7、网桥

7.1、安装网桥

# 安装网桥
yum install -y bridge-utils
 

7.2、查看网桥

 
查看网桥
brctl show

在这里插入图片描述

7.3、创建网桥

# 创建网桥
[root@zhoufei ~]# brctl  addbr br0
# 配置网关IP
[root@zhoufei ~]# ifconfig  br0 18.18.0.1


在这里插入图片描述

8、查看iptables规则

iptables-save

内容

[root@zhoufei ~]# iptables-save
# Generated by iptables-save v1.4.21 on Sun Feb 13 20:06:21 2022
*filter
:INPUT ACCEPT [508:37682]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [325:51996]
:DOCKER - [0:0]
:DOCKER-ISOLATION-STAGE-1 - [0:0]
:DOCKER-ISOLATION-STAGE-2 - [0:0]
:DOCKER-USER - [0:0]
-A FORWARD -j DOCKER-USER
-A FORWARD -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j RETURN
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j RETURN
-A DOCKER-USER -j RETURN
COMMIT
# Completed on Sun Feb 13 20:06:21 2022
# Generated by iptables-save v1.4.21 on Sun Feb 13 20:06:21 2022
*nat
:PREROUTING ACCEPT [8:1754]
:INPUT ACCEPT [8:1754]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:DOCKER - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
-A DOCKER -i docker0 -j RETURN
COMMIT
# Completed on Sun Feb 13 20:06:21 2022
[root@zhoufei ~]# 


8.1、其中nat表中的POSTROUTING链有这么一条规则

-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE


8.1.1、参数说明

-s 172.17.0.0/16

源地址172.17.0.0/16

-o docker0

指定数据报文流出接口为docker0

-j MASQUERADE

动作为MASQUERADE(地址伪装)

8.1.2、含义

将源地址为172.17.0.0/16的数据包(即Docker容器发出的数据),当不是从docker0网卡发出时做SNAT。
这样一来,从Docker容器访问外网的流量,在外部看来就是从宿主机上发出的,外部感觉不到Docker容器的存在。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值