거꾸로 바라본 세상
Published 2023. 4. 19. 09:31
7. Docker Network CI-CD/Docker
반응형

Docker Network

도커 네워의 목록 확인

$ docker network ls [option..]
옵션 설명
-f --filter=[] 출력을 필터링한다.
--no-trunc 상세 정보를 출력한다.
-q, --quite 네트워크 ID만 표시한다.
$ docker network ls

[결과]

도커는 기본값으로 bridge, host, none 이 세 개의 네트워크를 만든다.

NETWORK ID NAME DRIVER SCOPE
521132b4fa64 bridge bridge local
7a5dbd6ac9fb host host local
4afd4ca94851 none null local

네트워크 목록 표시 필터링

$ docker network ls -q --filter driver=bridge
521132b4fa64

sample이란 이름으로 ubuntu:latest 컨테이너 실행

$ docker container run -itd --name=sample ubuntu:latest

docker inspect [name..] 명령을 통해 docker 컨테이너에 소속된 네트워크 확인할 수 있다.

$ docker container inspect sample
[
    {
        ...
        "NetworkSettings" {
            ... 
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "521132b4fa641980f1497cc7c0afad4d31b602bca04be3131cb6bd3101f847de",
                    "EndpointID": "70bb2ee608cd6d88c66fed00b4388742c4a8485977ac113facce8471dd2ac005",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:02",
                    "DriverOpts": null
                }
            }
        }
    }
]

네트워크 생성(docker network create)

$ docker network create [옵션] 네트워크

지정할 수 있는 주요 옵션

옵션 설명
--driver, -d  네트워크 브리지 또는 오버레이(기본값 bridge)
--ip-range 컨테이너에 할당하는 IP 주소 범위 지정
--subnet 서브넷을 CIDR 형식으로 지정
--ipv6 IPv6 네트워크를 유효화할지 말지(true/false)
--label 네트워크에 설정하는 라벨

 

$ docker network create --driver=bridge web-network
caf80cc107b5e868ccb0bb263f9c402d0969f85da15b9235b152aaa2d8054d03

 

web-network작성 확인

$ docker network ls --filter driver=bridge
NETWORK ID     NAME          DRIVER    SCOPE
521132b4fa64   bridge        bridge    local
caf80cc107b5   web-network   bridge    local

네트워크 연결 (docker network connect/docker network disconnect)

도커 네트워크 연결

$ docker network connect [옵션] 네트워크 컨테이너

'webserver'라는 Docker 컨테이너를 'web-network'라는 이름의 Docker network에 연결한다. 연결 후 동일한 네트워크 상에 있는 다른 컨테이너와 통신을 할 수 있다.

$ docker network connect web-network webserver

# 연결확인
$ docker inspect webserver
[ 
    {
    ...
        "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "521132b4fa641980f1497cc7c0afad4d31b602bca04be3131cb6bd3101f847de",
                    "EndpointID": "",
                    "Gateway": "",
                    "IPAddress": "",
                    "IPPrefixLen": 0,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "",
                    "DriverOpts": null
                },
                "web-network": {
                    "IPAMConfig": {},
                    "Links": null,
                    "Aliases": [
                        "f29c95b346af"
                    ],
                    "NetworkID": "",
                    "EndpointID": "",
                    "Gateway": "",
                    "IPAddress": "",
                    "IPPrefixLen": 0,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "",
                    "DriverOpts": {}
                }
            }
        }
    }
]

연결 시작 시 네트워크 연결 설정

$ docker container run -itd --name=webap --net=web-network nginx

도커 네트워크 연결 해제

$ docker network disconnect web-network webserver

네트워크 상세정보 확인(docker network inspect)

네트워크 상세 정보를 확인할 때 docker network inspect 명령을 사용.

$ docker network inspect [옵션] 네트워크

$ docker network inspect web-network

## containers에 'webserver'가 가동죽인 걸 확인할 수 있다.
[
    {
        "Name": "web-network",
        "Id": "caf80cc107b5e868ccb0bb263f9c402d0969f85da15b9235b152aaa2d8054d03",
        "Created": "2022-08-30T08:17:41.2935052Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "f29c95b346affd02532fe03dc2edeca59254204e16c48640ca3160cb584095e2": {
                "Name": "webserver",
                "EndpointID": "06e001770c62781ba9febedc6d7a7ac90a4234d926cf6f8e6616a9e751e66d72",
                "MacAddress": "02:42:ac:12:00:02",
                "IPv4Address": "172.18.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

네트워크 삭제(docker network rm)

$ docker network rm [옵션] 네트워크

$ docker network rm web-network
반응형

'CI-CD > Docker' 카테고리의 다른 글

9. Dockerfile  (0) 2023.04.19
8. Docker compose를 이용하여 Kafka Confluent 설치  (0) 2023.04.19
6. Docker container  (0) 2023.04.19
5. docker image 조작  (0) 2023.04.19
4. 도커에서 웹 서버 작동하기(Nginx 설치하기)  (0) 2023.04.19
profile

거꾸로 바라본 세상

@란지에。

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!