2017-12-17 8 views
0

Docker에서 .net 코어의 WebAPI를 사용하고 있습니다. 다른 웹 응용 프로그램과 함께 작동하는 로컬 mysql 데이터베이스와 AWS EC2 인스턴스에이 API를 배포하고 싶습니다.Docker .net 코어에서 localhost Mysql을 연결하십시오.

도저 내부에서이 MySQL에 어떻게 연결할 수 있습니까?

로컬 나는 dB로 연결하기 위해 사용해야하는 $my_local_ip 결정

=> optionsBuilder.UseMySql(@"Server=$my_local_ip;database=db_name;uid=user;pwd=pass;"); 

호에 내 개인 IP 요지를 사용하여 할 수 있습니까?

하지만 EC2에서 개인 IP를 사용하는 동안 MYSQL 호스트에 연결할 수 없다는 요청을 보내는 동안 오류가 발생했습니다.

+0

MySQL 데이터베이스와 웹 API 컨테이너가 같은 컴퓨터에 있습니까? MySQL도 컨테이너 내부에서 실행됩니까? –

+0

@JanshairKhan MySQL 데이터베이스와 WebAPI가 동일한 컴퓨터에 있습니다. WebAPI 만 컨테이너에 있습니다. MySQL은 Docker 외부에서 localhost로 작업하고 있습니다. –

답변

1

MySQL 서버의 경우 일반적으로 동일한 서버의 각 인스턴스가 다른 포트를 사용하기 때문에 연결할 포트를 지정해야합니다.

+0

하지만이 Mysql은 도커 안에서 작동하지 않습니다. 도커가이 항구를 어디에서 찾을 지 어떻게 알았습니까? –

0

웹 API 컨테이너를 시작하는 동안 --network=host 플래그를 사용하고 연결 문자열에 localhost을 호스트 이름으로 사용하십시오. 그러면 Docker 컨테이너가 호스트 네트워크에 액세스 할 수 있습니다. 따라서 컨테이너에서 MySQL 데이터베이스에 액세스 할 수 있습니다.

참고 : 컨테이너 작업 부하를 실행하는 것은 안전하지 않습니다.Click Here to learn more