해결된 질문
작성
·
1.1K
1
답변 1
1
안녕하세요!
react / spring boot / mysql 을 컨테이너로 관리했을때 연결하는 방법은 두가지가 있습니다.
1. 가상 network 사용
같은 network로 묶을 경우 container name을 host명으로 사용할 수 있습니다.
예를 들어 mysql 컨테이너를 mysql이라는 이름으로 생성했다면 spring boot에서 localhost대신 mysql을 호스트명으로 사용하시면 됩니다.
2. host network로 port를 노출하여 연결
-p 옵션을 이용하여 컨테이너의 포트를 호스트로 연결하고 호스트 IP를 사용할 수 있습니다. localhost대신 호스트(서버)의 IP를 입력하시면 됩니다.
1번의 장점은 호스트 포트를 사용하지 않기 때문에 포트가 겹칠 걱정없이 사용할 수 있지만, 하나의 서버에 3개의 컨테이너를 모두 실행해야 합니다. 2번은 여러개의 서버에 컨테이너를 분산 관리하는 경우에도 사용할 수 있습니다.
두번째 질문하신 depends_on 옵션의 경우 docker는 비슷한 기능을 제공하지 않습니다. 일반적으로 restart옵션을 always로 설정하고 필요한 컨테이너가 실행되기 전에 먼저 실행되면 실패 후 다시 재시도 하는 방법을 사용합니다.
약간 지저분해 보인다고 생각할 수 있는데, 컨테이너는 언제든지 죽었다 살아날 수 있고 재시도 후 다시 성공하도록 구성하는게 일반적이라고 생각하시면 좋습니다.
감사합니다!