도커 컨테이너 사용법, 도커 네트워크 사용법 을 선행 숙지해주세요.
네트워크 연결 테스트
1. 컨테이너 생성
docker run -itd --name container1 nginx #nginx 이미지로 컨테이너 생성
(컨테이너 생성시 --network 를 명시해주지않으면, 기본 bridge 네트워크가 할당된다.)
2. 생성한 컨테이너의 네트워크 정보 확인
docker inspect container1 #생성한 container1 의 세부정보 확인
[
{
"Id": "36dc0d94bab28a1fdaa54931fa6f6b5d5da4b6d6a3ab7ce7fdc0af491b555f86",
"Created": "2024-04-23T04:23:02.693323083Z",
"Path": "/docker-entrypoint.sh",
(생략..) {
"Networks": { #Networks 하위에 컨테이너에 연결된 네트워크가 명시됩니다.
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"MacAddress": "02:42:ac:11:00:02",
"NetworkID": "605ee34417fc010d966ed1663c37f5ac112ba55870de634599079078ac092f7c",
"EndpointID": "524fd26abc7eb608a67d10a7adc236e17a5b541bf5fa102aac196797731eb5d6",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"DriverOpts": null,
"DNSNames": null
}
}
}
}
]
3. 기본 bridge 네트워크 연결 해제
docker network disconnect bridge container1
4. 네트워크 생성
docker network create test
5. 컨테이너와 네트워크 연결
docker network connect test container1
6. 컨테이너와 네트워크 연결 확인
docker network inspect test
[
{
"Name": "test",
(생략..)
"Containers": { #네트워크에 연결된 컨테이너 정보를 확인한다.
"36dc0d94bab28a1fdaa54931fa6f6b5d5da4b6d6a3ab7ce7fdc0af491b555f86": {
"Name": "container1",
"EndpointID": "a6506428350e32e5792cf0aad0bccf9d9be0de6b409a2fbfe22f572436e8c3c9",
"MacAddress": "02:42:ac:19:00:02",
"IPv4Address": "172.25.0.2/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
7. 추가 컨테이너 생성 및 네트워크에 연결 (컨테이너간의 네트워크 연결 테스트를 위해)
docker run -itd --name container2 --network test nginx
8. 네트워크 연결 확인
docker inspect test
[
{
"Name": "test",
(생략..)
"Containers": {
"36dc0d94bab28a1fdaa54931fa6f6b5d5da4b6d6a3ab7ce7fdc0af491b555f86": {
"Name": "container1",
"EndpointID": "a6506428350e32e5792cf0aad0bccf9d9be0de6b409a2fbfe22f572436e8c3c9",
"MacAddress": "02:42:ac:19:00:02",
"IPv4Address": "172.25.0.2/16",
"IPv6Address": ""
},
"e19242de0ee2d48749728f367b4356d596ebb2a24aed97a445ccc927595b8b0e": {
"Name": "container2",
"EndpointID": "19788fc16423a95a6bb0615321b2c653413835f0ce60e334f572afbf5833aa7c",
"MacAddress": "02:42:ac:19:00:03",
"IPv4Address": "172.25.0.3/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
(container1 과 container2 가 동일한 네트워크에 연결되었다.)
9. 컨테이너에 iputils-ping 설치 (컨테이너간 네트워크 연결 확인을 위해 설치)
docker exec container1 sh -c "apt update -y; apt install -y iputils-ping"
docker exec container2 sh -c "apt update -y; apt install -y iputils-ping"
(container1, container2 에 apt update 후 iputils-ping 설치)
10. 컨테이너 간 연결 확인
docker exec container1 ping container2 #container1 -> container2 로 테스트
PING container2 (172.25.0.3) 56(84) bytes of data.
64 bytes from container2.test (172.25.0.3): icmp_seq=1 ttl=64 time=0.050 ms
docker exec container2 ping container1 #container2 -> container1 로 테스트
PING container1 (172.25.0.2) 56(84) bytes of data.
64 bytes from container1.test (172.25.0.2): icmp_seq=1 ttl=64 time=0.101 ms
11. 네트워크 제거
docker stop container1 container2 #네트워크 삭제를 위해 사용중인 컨테이너 중지 처리
docker network rm test #네트워크 삭제
Rocky Linux(CentOS) 에 Docker, Docker-compose 설치 (0) | 2024.05.28 |
---|---|
Docker compose 사용법 (2) | 2024.05.21 |
Docker Network 사용법 (0) | 2024.04.23 |
Docker Image 사용법 (0) | 2024.04.23 |
Dockerfile 작성법 (0) | 2024.04.23 |