一)补充说明
Docker的网络子系统可通过driver扩展。默认已有几种driver提供Docker联网服务,如下:
bridge //网桥,是docker的默认driver
host
none
overlay
macvlan
每种driver针对不同的使用场景,具体可参见官网:https://docs.docker.com/network/#network-drivers ,这里摘录如下:
User-defined bridge networks are best when you need multiple containers to communicate on the same Docker host.
Host networks are best when the network stack should not be isolated from the Docker host, but you want other aspects of the container to be isolated.
Overlay networks are best when you need containers running on different Docker hosts to communicate, or when multiple applications work together using swarm services.
Macvlan networks are best when you are migrating from a VM setup or need your containers to look like physical hosts on your network, each with a unique MAC address.
Third-party network plugins allow you to integrate Docker with specialized network stacks.
二)bridge配置
根据官网说明,bridge的使用场景是同一宿主机上的多个container互联。由于bridge是docker的默认driver,因此当未特别指定联网模式时,启动容器将使用默认的bridge。但默认的bridge有诸多限制(具体可参见官方说明),因此实际情况是常自定义bridge。
自定义的bridge有以下好处:
好的隔离性和互操作性:连到同一自定义的bridge的各个容器默认相互之间曝露所有端口,并且不对外部曝露
自动提供容器之间的DNS解析服务:连到同一自定义的bridge的各个容器不用做特殊DNS配置,可直接通过hostname访问
运行中容器联网配置:可对运行中的容器配置自定义或取消配置自定义bridge
bridge之间相互独立:用户可创建N多个bridge,且连接于不同的bridge之上的容器相互独立
A. 创建自定义bridge
$ docker network create [-d bridge] my-net //-d指定联网模式,缺省时默认为bridge; 可以docker network create --help查看选项参数
B. 创建新的容器
$ docker create --name my-nginx \ --network my-net \ --publish 8080:80 \ nginx:latest //以--network指明连接哪个bridge; --publish可以用-p替代
C. 将运行中的容器连接至自定义的bridge
$ docker network connect my-net my-nginx
D. 将运行中的容器从自定义bridge上移除
$ docker network disconnect my-net my-nginx
注:资料参考https://docs.docker.com/network/bridge/
三)根据自定义的bridge配置静态IP
A. 创建自定义网络(bridge)
$ docker network create --subnet=172.18.0.0/16 my-net //添加--subnet参数
B. 为容器配置静态IP
$ docker run -it --network my-net --ip 172.18.0.250 imageID bash //添加--ip参数
C. 为容器配置特定hostname
$ docker run -it --network my-net --ip 172.18.0.250 -h hostname imageID bash //添加-h参数,或--hostname=Name
注:资料参考https://blog.csdn.net/gobitan/article/details/51104362