美文网首页dibo
Docker Net 网络

Docker Net 网络

作者: 赛亚人之神 | 来源:发表于2019-04-24 17:46 被阅读28次
    四种容器网络原型以及他们之间相互交互的网络拓扑图
    1. 默认桥接模式
    docker run --name b1 -it --rm busybox:latest; 
    

    此时容器的主机名是容器id,如果想要自定义主机名,在 docker run 时通过 --hostname 指定

    docker run --name b1 -it --rm --hostname b1 busybox:latest;
    hostname
    hostid
    cat /etc/hosts
    cat /etc/resolv.conf
    nslookup -type=a www.baidu.com; // 域名解析
    
    1. 无网络模式
    docker run --name a1 --rm -it --network none busybox:latest
    
    1. 联盟式网络(共享 NET,UTS,IPC
    docker run --name a2 --rm -it --network container:b1 busybox:latest
    

    可以看到新启动的容器 a2 和容器 b1 共享同一个net namespaces
    在 b1 容器上启动 httpd 服务,在 a2 容器中通过wget -O - -q 127.0.0.1同样可以访问到
    1. 使用宿主机网络
    docker run --name a1 --rm -it --network host  busybox:latest
    

    关于网桥的设置
    1. 创建网络自定义网桥,指定子网、网关信息

    docker network create -d bridge --subnet "172.16.0.0/16" --gateway "172.16.0.1" custombr
    

    2. 如何将 docker0 默认的 172.27.0.1 修改成别的地址

    修改 /etc/docker/daemon.json 文件,添加 bip(即 bridge ip),就可以设置 docker0 桥自身的 ip 地址,其它字段都可以根据 bip 计算得出,注意的是 dns 无法计算,需要自己配置。默认情况下,只需设置 bip 即可

    {
            "bip": "192.168.1.5/24",
            "fixed-cidr": "10.20.0.0/16",
            "fixed-cidr-v6": "2001:bd8::/64",
            "mtu": 1500,
            "default-gateway": "10.20.1.1",
            "default-gateway-v6": "2001:bd8:abcd::89",
            "dns": ["10.20.1.2", "10.20.1.3"]
        }
    

    3. 如何在别的主机上访问另一台主机的 docker daemon 进程
    docker daemon 默认仅监听 Unix Socket 格式的文件地址 /var/run/docker.sock,如果想使用 TCP 套接字连接,修改/etc/docker/daemon.json 添加如下信息:

    "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
    

    使用 docker -H 192.168.146.128 image ls 即可查看这台机器上的所有镜像了 (-H, --host)


    安装 bridge-utils

    yum install -y bridge-utils;
    brctl show; // 查看网络设备
    
    image.png

    相关文章

      网友评论

        本文标题:Docker Net 网络

        本文链接:https://www.haomeiwen.com/subject/jqcngqtx.html