docker的网络模式

文章中会通过busybox镜像,通过创建不同的网络模式,作出不同的效果:

root@test:~# docker pull busybox

四种网络模式:

      · bridge:  --net=bridge

              默认网络,Docker启动后默认创建一个docker网桥,默认模式启动后,会为容器生成两张网卡:

        

       · host:--net=host

              容器不会获得一个独立的network namespace,而是与宿主机共享,即容器没有自己的网卡信息,而是使用宿主机的网卡,容器除了网络,其他全部隔离

              该容器启动后,查看到的网卡信息与宿主机相同

       

       · none:-net=none

               获取独立的network namespace,但需要手动配置网卡信息

        

        · container:-net=container:Name/ID

                与制定的容器使用同一个network namespace,具备同样的网络配置信息,两个容器除了网络,其他都是隔离的。

         root@test:~# docker run -it --name bs --rm -p 99:80 busybox      ##busybox容器为一个非常简单的系统,无任何服务。

         root@test:~# docker run --name nginx1 --rm -it --net container:bs nginx    ##busybox容器的80端口映射到nginx

         可通过宿主机的99端口,访问到nginx

           

        

         · 自定义网络:

                   具备内部DNS发现,可以通过容器名或者主机名容器之间网络通信

                 一、创建一个网络:

                 root@test:~# docker network create bs_test

                 二、把需要相互通信的容器加入到同一个网络(主机名、ip):

                 root@test:~# docker run -it --name bs1 --rm --net bs_test ubuntu     

                 root@test:~# docker run --rm -it --name bs2 --net bs_test ubuntu    

                 这两个容器之间可通过IP、主机名、容器名ping通

原文地址:https://www.cnblogs.com/liyuanshu/p/13494724.html