서로 다른 컨테이너 끼리는 Network로 이어져야 한다.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0a8d97dab6ea my-gin-app "./main" 2 minutes ago Up 2 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp gin-container
3e1d890b0212 redis "docker-entrypoint.s…" 21 minutes ago Up 11 minutes 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp redis
cdf378b3659f postgres:15 "docker-entrypoint.s…" 26 minutes ago Up 11 minutes 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp postgres
05209580d97f dpage/pgadmin4 "/entrypoint.sh" 26 minutes ago Up 11 minutes 443/tcp, 0.0.0.0:5431->80/tcp, [::]:5431->80/tcp pgadmin
독립 된 컨테이너 redis와 postgres가 있을 때 두 개를 이어주어야 한다.
# Database
DB_HOST=postgres
DB_USER=postgres
DB_PASSWORD=postgres
DB_NAME=postgres5
DB_PORT=5432
SSL_MODE=disable
TIMEZONE=Asia/Shanghai
# Bcrypt
BCRYPT_COST=5
# Redis
REDIS_HOST=redis:6379
REDIS_PASSWORD=
Host등의 내용은 해당 컨테이너의 이름을 작성해야 한다.
컨테이너 간 통신을 위해 같은 Docker 네트워크를 사용해야 한다.
docker network ls
docker network create 네트워크_이름
docker network connect 네트워크_이름 postgres
docker network connect 네트워크_이름 redis
docker network connect 네트워크_이름 gin-container
위에처럼 DB의 경우 미리 만들어져 실행이 되어 있을 텐데 gin-container의 경우 컨테이너로 만들 때 네트워크를 지정하면 된다.
# docker run -d --name gin-container --network=binary --env-file .env -p 8080:8080 my-gin-app
이렇게 한다면 각기 다른 컨테이너끼리 컨테이너 이름으로 연결과 통신이 가능하다...
[
{
"Name": "binary",
"Id": "c08a3ba68ba655efb1fb2dac47404984d1287e83108de8c5766be3afb2953adc",
"Created": "2025-02-13T17:35:40.708925112+09:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.19.0.0/16",
"Gateway": "172.19.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"0a8d97dab6eaaed301f25851393c97ce4c60be6afc8fc3e0669d94548e502c9d": {
"Name": "gin-container",
"EndpointID": "7d20f9aae87d23aaaea63844024ab5c33ae33db58f03ac060211b644bce446dd",
"MacAddress": "02:42:ac:13:00:04",
"IPv4Address": "172.19.0.4/16",
"IPv6Address": ""
},
"3e1d890b0212216e08c63f1883abe0ec38b3f2d7324a956b4f1d690fde540e67": {
"Name": "redis",
"EndpointID": "01a011cb25d1c30f5e1a42c6f04b153d167a6ea7f984addec298850064282cd0",
"MacAddress": "02:42:ac:13:00:03",
"IPv4Address": "172.19.0.3/16",
"IPv6Address": ""
},
"cdf378b3659fcfc5909617ca4739eee308702effe2e22da6da79eeedefdf5d12": {
"Name": "postgres",
"EndpointID": "1e26d21964d0c5088e14ab572e4c84f6ae7f706d5de645bd119546205679e03a",
"MacAddress": "02:42:ac:13:00:02",
"IPv4Address": "172.19.0.2/16",
"IPv6Address": ""
}
},
'Docker' 카테고리의 다른 글
[WSL2] 특정 포트 열기 (0) | 2025.02.17 |
---|---|
rocky9 - Docker 설치하기 (0) | 2024.12.30 |
PostgreSQL과 pgAdmin을 위한 Docker Compose 설정 (0) | 2024.12.18 |