Docker 사용자 지정 네트워크 및 네트워크 연결

Docker 사용자 지정 네트워크 및 네트워크 연결

도커 커스텀 네트워크

모든 네트워크보기

docker network ls

스크린 샷 :
여기에 사진 설명 삽입
네트워크 모드 :

방법 기술
다리 브리지 도커 (기본값), 브리지 모드도 사용하여 직접 생성
없음 네트워크를 구성하지 마십시오
주최자 호스트와 네트워크 공유
컨테이너 컨테이너 네트워크가 연결되었습니다! (더 적게 사용하지만 많은 제한이 있음)

테스트:

# 我们直接启动的命令 --net bridge ,而这个就是我们的docker0
docker run -d -p 8003:8080 --name tomcat01 tomcat 
docker run -d -p 8003:8080 --name --net bridge tomcat01 tomcat 

# docker0特点,默认,域名不能访问,--link可以打通(比较麻烦)

# 我们可以自定义网络
# --driver bridge 
# --subnet 192.168.0.0/16  192.168.0.2 192.168.255.255
# --gateway 192.168.0.1
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet



# 查看所有网络
docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
326f1b307a15   bridge    bridge    local
bbdfc1178b51   host      host      local
04eb5e8aa466   mynet     bridge    local
cc581864c464   none      null      local

자신의 네트워크보기

docker network inspect mynet

스크린 샷 :
여기에 사진 설명 삽입

테스트:

[root@izwz94goxqbb9ayvrlpgcaz ~]# docker run -d -P --name tomcat-net-01 --net mynet tomcat
0b3de9475305fb53e972b139a64cbf91ddbb97b712b0a1e322261509e65b12af
[root@izwz94goxqbb9ayvrlpgcaz ~]# docker run -d -P --name tomcat-net-02 --net mynet tomcat
b1aed3b45e7b9c4b8cb32f9e345783dde40eba5803a71e5f0f00c16d0ba21240
[root@izwz94goxqbb9ayvrlpgcaz ~]# docker network inspect mynet
[
    {
    
    
        "Name": "mynet",
        "Id": "04eb5e8aa466dc4cfd9bcac0673dafb2eda41287545abe4900546deb76aeac72",
        "Created": "2021-02-06T22:30:32.576364411+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
    
    
            "Driver": "default",
            "Options": {
    
    },
            "Config": [
                {
    
    
                    "Subnet": "192.168.0.0/16",
                    "Gateway": "192.168.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
    
    
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
    
    
            "0b3de9475305fb53e972b139a64cbf91ddbb97b712b0a1e322261509e65b12af": {
    
    
                "Name": "tomcat-net-01",
                "EndpointID": "69905b3fdd1950c567db96da806d6be936f89dae4f8f537302298cece9e72d38",
                "MacAddress": "02:42:c0:a8:00:02",
                "IPv4Address": "192.168.0.2/16",
                "IPv6Address": ""
            },
            "b1aed3b45e7b9c4b8cb32f9e345783dde40eba5803a71e5f0f00c16d0ba21240": {
    
    
                "Name": "tomcat-net-02",
                "EndpointID": "1b540ed1dcf4968c81b6ef20be0769ca91cd7504141caf02aa9a040ecdd0897c",
                "MacAddress": "02:42:c0:a8:00:03",
                "IPv4Address": "192.168.0.3/16",
                "IPv6Address": ""
            }
        },
        "Options": {
    
    },
        "Labels": {
    
    }
    }
]

# 再测试pingip
[root@izwz94goxqbb9ayvrlpgcaz ~]# docker exec -it tomcat-net-01 ping 192.168.0.3
PING 192.168.0.3 (192.168.0.3) 56(84) bytes of data.
64 bytes from 192.168.0.3: icmp_seq=1 ttl=64 time=0.107 ms
64 bytes from 192.168.0.3: icmp_seq=2 ttl=64 time=0.063 ms
64 bytes from 192.168.0.3: icmp_seq=3 ttl=64 time=0.066 ms
^C
--- 192.168.0.3 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 5ms
rtt min/avg/max/mdev = 0.063/0.078/0.107/0.022 ms

# 现在不用--link也可以ping名字了
[root@izwz94goxqbb9ayvrlpgcaz ~]# docker exec -it tomcat-net-01 ping tomcat-net-02
PING tomcat-net-02 (192.168.0.3) 56(84) bytes of data.
64 bytes from tomcat-net-02.mynet (192.168.0.3): icmp_seq=1 ttl=64 time=0.052 ms
64 bytes from tomcat-net-02.mynet (192.168.0.3): icmp_seq=2 ttl=64 time=0.050 ms
64 bytes from tomcat-net-02.mynet (192.168.0.3): icmp_seq=3 ttl=64 time=0.050 ms
64 bytes from tomcat-net-02.mynet (192.168.0.3): icmp_seq=4 ttl=64 time=0.052 ms
64 bytes from tomcat-net-02.mynet (192.168.0.3): icmp_seq=5 ttl=64 time=0.056 ms
64 bytes from tomcat-net-02.mynet (192.168.0.3): icmp_seq=6 ttl=64 time=0.057 ms
^C
--- tomcat-net-02 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 25ms
rtt min/avg/max/mdev = 0.050/0.052/0.057/0.009 ms

사용자 정의 네트워크 도커는 해당 관계를 유지하는 데 도움이되었으며 일반적으로 이와 같은 네트워크를 사용하는 것이 좋습니다!

이점 :
redis-different 클러스터는 클러스터가 안전하고 정상인지 확인하기 위해 다른 네트워크를 사용합니다.
mysql-different 클러스터는 클러스터가 안전하고 정상인지 확인하기 위해 다른 네트워크를 사용합니다.

네트워크 연결

아이디어 :
여기에 사진 설명 삽입
관련 명령 :
여기에 사진 설명 삽입
여기에 사진 설명 삽입
테스트 :

# tomcat 连通mynet
docker network connect mynet tomcat01

# mynet详细信息
docker network inspect mynet

연결 후 mynet 네트워크 아래에 tomcat01을 놓습니다.

두 개의 IP 주소가있는 컨테이너 Alibaba Cloud : 공용 네트워크 IP, 사설 네트워크 IP
여기에 사진 설명 삽입

docker exec -it tomcat01 ping tomcat-net-01

스크린 샷 :
여기에 사진 설명 삽입
결론 : Tomcat01이 mynet을 열었으므로 tomcat01은 tomcat-net-01을 ping 할 수 있습니다.

추천

출처blog.csdn.net/weixin_43520670/article/details/113731794