인프라/Docker
[Docker] 도커 컨테이너 통신
2juhyunju
2022. 1. 12. 17:20
Link
- WEB -> DB 경우일 때 DB를 먼저 만들고 WEB을 만들어야 한다. 그 이유는 WEB의 /etc/hosts 파일에 DB의 이름정보가 들어가 있어야 하기 때문이다.
- 우리가 만든 Network는 자동으로 DNS 서비스가 활성화 되어 있는 반면에 Briage는 Docker가 자체적으로 만들었기 대문에 DNS가 없다. * 단 별칭을 사용하고 싶으면 링크를 사용해야 한다.
# docker run -it --name <컨테이너이름> --link <컨테이너 이름> <이미지>
# docker run -it --name <컨테이너이름> --link <컨테이너 이름>:os <이미지이름>
포트 포워딩
포트 포워딩은 호스트의 특정 포트로 들어왔을 때 내부에 있는 다른 포트로 전달 하는것
- 브릿지 네트워크를 사용하는 모든 컨테이너는 외부에서 접근할 때 포트포워딩을 해야 한다. 포트 포워딩 하려면 컨테이너를 실행할 떄 -p 옵션을 사용한다.
# docker run -d --name web5 -p 8080:80 httpd:latest ## web5 컨테이너를 실행하면서 호스트의 8080포트로 접근했을 때 컨테이너의 80번 포트로 전달한다.
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1ce34c061744 httpd:latest "httpd-foreground" 7 seconds ago Up 5 seconds 0.0.0.0:8080->80/tcp web5
## 여기서 0.0.0.0은 호스트의 IP를 나타내며 :8080은 호스트의 포트를 나타낸다.
포트포워딩이 설정되면 로컬호스트 뿐만 아니라 이 호스트에 접근할 수 있는 모든 시스템에서 접근 가능하다.