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] 삭제
몇 마디 만하겠습니다