MacOS 용 Docker에서 NuoDB 설정. NuoDB에 연결하지 못했습니다. [08S01] 호스트에 연결할 수 없습니다.

총알 이빨

Docker 이미지를 사용하여 NuoDB를 로컬로 설정했습니다. 잘 작동하며 데이터베이스 콘솔에 액세스하고 http://localhost:8888/explorer.jsp. 하지만 JDBC를 사용하여 데이터베이스에 연결하려고 할 때 오류가 발생했습니다.

NuoDB에 연결하지 못했습니다. [08S01] 호스트 [localhost]에 연결할 수 없습니다. 오류 : [java.io.IOException : 작업 시간 초과 (연결 시간 초과), /172.17.0.3:48006]

내가 이해했듯이 NuoDB 브로커에 성공적으로 연결했습니다 localhost:48004. 그리고 브로커가 공식 문서에 설명 된 제한으로 인해 호스트에서 액세스 할 수없는 실행중인 도커 컨테이너의 IP 인 데이터베이스 노드 주소 172.17.0.3:48006나를 던진 후 .172.17.0.3

내 질문은 어떻게 데이터베이스에 연결할 수 있습니까? 해결 방법이 있습니까?

내 환경은 다음과 같습니다 :
Docker 버전 17.03.1-ce, build c6d412e .
명령으로 컨테이너를 실행
docker run -d --privileged=true -p 48004:48004 -p 48005:48005 -p 48006:48006 -p 9001:9001 -p 8888:8888 nuodb-test합니다..
Dockerfile 및 NuoDB 설정은 내 github repo 에서 찾을 수 있습니다 .

미리 감사드립니다.

총알 이빨

나는이 문제를 알아 냈다. 다음은 해결책입니다.

1) Docker Toolbox를 설정하십시오 . VirtualBox VM함께 제공되며 VM IP 주소를 사용하여 DB에 연결할 수 있습니다.

아래에서는 Docker Toolbox 에서 NuoDB를 실행하는 일련의 명령을 설명합니다 .
2) eval $(docker-machine env default)Docker Toolbox로 전환하기 위해 실행하십시오 .
MacOS 용 Docker로 다시 전환하려면 unset ${!DOCKER_*} .

3) 옵션으로 컨테이너를 시작하십시오 --network=host -e BROKER_ALT_ADDR=$(docker-machine ip).
제 경우에는 전체 명령은 다음과 같습니다.
docker run -d --privileged=true --network=host -e BROKER_ALT_ADDR=$(docker-machine ip) -p 48004:48004 -p 48005:48005 -p 48006:48006 -p 9001:9001 -p 8888:8888 nuodb-test

4) docker-machine ip명령을 사용 하여 기본 도커 머신 IP 주소를 가져옵니다. 이제이 IP로 연결할 수 있습니다. JDBC 연결 문자열 예 : 도커 머신 IP 주소는 jdbc:com.nuodb://192.168.99.100/test어디에 있습니까 192.168.99.100?

또한 IP로 데이터베이스 관리 센터에 연결할 수 있습니다 http://192.168.99.100:8888/.

자세한 내용은 문서 읽기

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관