04Docker网络基础配置

1 . Docker默认网络

Docker安装后,会自动创建3个网络,可以用

docker network ls 查看

Docker默认才用的网络是:“bridge” 桥接网络

Docker安装成功后,回出现docker0的网络设备,本质是一个虚拟网桥

brctl show

注意:brctl show 需要安装 yum install bridge-utils -y

2.dcoker0的作用

给容器分配IP地址(与docker0同网段)

给容器分配Mac地址

是每个容器的默认网关

同一个宿主机的各个容器之间通信基础(都接入docker0网桥)

宿主机和容器直接通信的基础

3.docker0的地址划分

docker0本身的IP:172.17.0.1

docker0的子网掩码:255.255.0.0

docker0分配的IP范围:172.17.0.2-172.17.255.254,共计65534个IP

4.docker0如何组织网络

a.运行某个容器

docker search alpine

docker pull alpine

docker run -itd --name ap01 alpine

ip addr

brctl show

b.查看容器网络接口

docker exec -it ap01 ip addr

c.查看容器IP

docker exec -it ap01 hostname -i | docker inspect ap01

veth是虚拟机以太网,全称是VirtualEthernet

veth通过“veth pair”技术在veth设备一端写入网络包,其对端的veth设备可以读取到对应的网络包(可以想象是一根虚拟网线將两个veth设备连接起来)

--容器启动

--docker创建一对虚拟接口

--一端放到本地主机,如veth7530,然后桥接到默认的docker0上

--另一端放到容器中,并修改名字为eth0

--docker0 分配一个IP容器eth0配置默认路由桥接王康veth7530

5.端口映射实现访问容器

容器启动时候如果指定对应参数容器外部无法通过网络访问容器网络应用服务

可以-P或者-p 参数指定映射端口使用-P标记Docker随机映射一个49000-49900端口容器内部网络端口

​
docker run -d -P training/webapp python app.py

docker ps -l

docker logs -f nostalgic_morse # 查看应用信息

​

6.映射所有接口地址

hostPort:containerPort 本地5000映射容器5000端口

​
docker run -d -p 5000:5000 training/webapp python app.py

此时默认绑定本地所有接口所有地址多次使用-p可以绑定端口

​
docker run -d -p 5000:5000 -p 3000:80 training/webapp python app.py

7.映射到指定地址的指定端口

​
docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py

8.映射到指定地址的任意端口

​
docker run -d -p 127.0.0.1::5000 training/webapp python app.py

可以使用udp标记udp端口

​
docker run -d -p 127.0.0.1::5000/udp training/webapp python app.py

9.查看映射端口配置

docker prot

10.容器互联

使用--link参数可以容器之间安全进行交互

创建一个数据库容器

docker run -d --name db training/postgres

删除之前web容器

docker rm -rf web

创建web容器连接db容器

​
docker run -d -P --name web --link db:db training/webapp python app.py

--link 参数格式 --link name:alias 其中name链接容器名字alias这个链接别名

docker ps

这样可以两个容器直接创建一个安全隧道不用映射他们端口宿主机从而避免暴露数据库端口外部网络

可以使用evn命令查看web容器环境变量

docker run --rm --name web2 --link db:db training/webapp env

11.网络连接

默认情况docker容器之间都是通过IP互相连接

基于安全考虑可以通过/etc/docker/daemon.json末尾配置“icc”: false可以禁止容器直接互联(充气docker才可剩下)

12.自定义网络

为何自定义网络容器隔离提高安全性DNS解析服务发现容器直接负载均衡

a.如何创建自定义网络

docker network create [--dirver 驱动类型] [ --subnet=172.168.0.0/16] 自定义网络

--driver 代表驱动类型默认bridge

--subnet 代表网段设置默认docker0地址递增(172.17.0.1-->172.18.0.1)

--通过docker network ls 查看自定义网络

--通过 docker network inspect 查看使用网络详情

b.如何使用自定义网络

容器启动时docker run --network 自定义网络

容器启动后docker network connect 网络 容器名

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫哥运维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值