赞
踩
网络模式
(1)查看docker 三种默认网络
>> docker network ls
- NETWORK ID NAME DRIVER SCOPE
- 35165d8bbc4b bridge bridge local
- 1c78982c24cf harbor_harbor bridge local
- 139f534c87d0 host host local
- 49e16aa0520e none null local
网络模式
bridge桥接网络模式
busybox:被称为嵌入式瑞士军刀,整合了很多小的 unix 下的通用功能到一个小的可执行问价中
(1)拉取busybox镜像
docker pull busybox
(2)创建bbox01容器
docker run -it --name=mybox01 busybox
结果如下:
宿主机结果如下:
关于 bridge 网络模式的使用,只需要在创建容器时通过参数 --net bridge 或者 --network bridge 指定即可,当然这也是创建容器默认的网络模式,也就是说这个参数是可以省略的
图解bridge之间的联系:
host主机模式
docker run -it --name=mybox02 --network host busybox
宿主机
综上:host网络模式直接使用宿主机的网卡
none自定义网络模式
使用none网络模式创建mybox03容器
docker run -it --name=mybox03 --network none busybox
结果如下:
container网络模式
Container
网络模式即新创建的容器不会创建自己的网卡,配置自己的ip,而是和一个指定的容器共享IP,端口范围等,同样两个容器移除了网络方面相同之外,其它文件系统,进程列表等还是隔离的
使用container网络模式创建mybox04容器
docker run -it --name=mybox04 --network container:mybox01 busybox
mybox04结果如下:
mybox01结果如下:
**link网络模式 **
官方警告信息: https://docs.docker.com/network/links/
自定义网络
虽然Docker提供的默认网络使用比较简单,但是为了保证各容器中的应用安全性,在实际开发中更推荐自定义的网络进行容器管理,以及启用容器名称到ip地址的自动DNS解析.
从Docker1.10版本开始,docker daemon 实现了一个内嵌的DNS server,使容器可以直接通过容器名称进行通信,方法很简单,只要在创建容器时使用 --name 为容器命名即可
但是使用Docker DNS有个限制: 只能在 user-defined网络中使用,也就是说,默认的bridge网络是无法使用DNS,所以我们就需要自定义网络
(1)创建网络
>>> docker network create --help Create a network Options: --attachable Enable manual container attachment --aux-address map Auxiliary IPv4 or IPv6 addresses used by Network driver (default map[]) --config-from string The network from which to copy the configuration --config-only Create a configuration only network -d, --driver string Driver to manage the Network (default "bridge") --gateway strings IPv4 or IPv6 Gateway for the master subnet --ingress Create swarm routing-mesh network --internal Restrict external access to the network --ip-range strings Allocate container ip from a sub-range --ipam-driver string IP Address Management Driver (default "default") --ipam-opt map Set IPAM driver specific options (default map[]) --ipv6 Enable IPv6 networking --label list Set metadata on a network -o, --opt map Set driver specific options (default map[]) --scope string Control the network's scope --subnet strings Subnet in CIDR format that represents a network segment
创建一个基于 brige 网络模式的自定义网络模式 custom_network 命令如下:
docker network create custom_network
docker network ls
分别创建mybox06与mybox07容器
docker run -it --name=mybox06 --net custom_network busybox
docker run -it --name=mybox07 --net custom_network busybox
测试
进入 docker exec -it mybox06 sh
进入 docker exec -it mybox07 sh
(2)连接网络
通过 docker network connect 网络名称 容器名称
为容器连接新的网络模式
例如: docker network connect bridge mybox01
(3)断开网络
通过docker network disconnect 网络名称 容器名称
例如: docker network disconnect custom_network mybox07
(4)移除网络
通过 docker network rm 网络名称
例如: docker network rm custom_network
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。