Docker 网络管理
Docker 有以下几种网络模式:
① host 模式:这种模式下,容器使用的网络与宿主机一致,也就是直接使用宿主机的网卡,因此IP地址也是一样的,用 --net=host 来指定
② container 模式:这种模式下,多个容器使用共同的网络,因此容器的IP地址都是一样的,可以使用 --net=container:container_id 或 --net=container:container_name 来指定
③ none 模式:这种模式下,容器不会配置任何网络,相当于没有网卡,可以用 --net=none 来指定
④ bridge 模式:如果不指定网络模式,默认使用 bridge 这种网络模式,这种模式下,会为每个容器分配一个独立的 Network Namespace,类似于 VMware 中的NAT模式 ( 虽然名字是bridge ) ,同一宿主机的所有容器会在同一个网段下,通常分配的网段是内网网段,容器之间可以互通,可以使用 --net=bridge 来指定
外部如何访问容器呢?比如我要访问容器内的 http 服务,该如何访问?
我们需要通过 -p 参数来进行端口映射,比如 docker run -itd -p 5000:80 centos bash 表示把宿主机的5000端口映射到容器的80端口,这样我们直接访问宿主机的5000端口就相当于访问容器的80端口了。这里我没有指定网络模式,则默认是 bridge 模式