2017-01-26 4 views
12

도커 컨테이너를 사용하는 모범 사례에 대한 질문이 있습니다.mysql 용 다중 도킹 컨테이너 또는 다중 데이터베이스 용 단일 인스턴스

내가 개발 한 응용 프로그램마다 하나의 데이터베이스가 필요합니다. 이제 내 질문은 내부에 여러 데이터베이스가있는 하나의 mysql 도커 인스턴스를 사용해야하는지 또는 각 데이터베이스에 대해 하나의 인스턴스를 만들어야하는지 여부이다. 데이터베이스 당 하나의 인스턴스를 만들 때 나타나는 단점은 모든 데이터베이스에 액세스 할 수있는 사용자를 가질 수 없다는 것입니다. 나는 이것이 보안상의 이유로 프로 인 것을 알고 있지만, 백업 할 때 모든 인스턴스에 들어갈 필요가있는 것보다 클라이언트에서 백업하려고 할 때. 그리고 여러 인스턴스가 리소스의 오버 헤드를 많이 사용하지 않습니다 (mysql이 리소스를 덜 사용하지만 나중에 더 큰 리소스를 사용하면 리소스 문제가 발생할 수 있음)

내 질문에 대한 일반적인 대답은 무엇입니까? 그것은 도커와 함께하고 프로와 콘트라는 무엇입니까?

답변

7

Docker는 특히 마이크로 서비스 배포에 적합합니다. 나는 개인적으로 서비스 당 단일 데이터베이스의 사용을 선호하고 별도의 배포 해당 확장

  1. Database per service
  2. Shared database

: 다음 링크는 데이터베이스의 사용과 관련하여 두 가지 전략을 논의 데이터베이스 서버의 인스턴스 이렇게하면 서비스가 느슨하게 결합되므로 한 서비스에서 DB 중단이 발생해도 다른 서비스에 영향을 미치지 않습니다.

+0

답변 해 주셔서 감사합니다. 프로덕션 환경이 아닌 여러 서비스를 개발하는 동안이 접근 방식을 사용합니까? –

+0

@BukharovSergey 물론입니다. 필자의 경우 여러 개의 app 컨테이너가 연결되는 단일 DB 인스턴스를 만드는 것은 어려움이 없습니다. –