나는 Digital Ocean에서 Docker 서버를 실행 중입니다. 거기에 두 개의 컨테이너 Nodejs와 MySQL이 있습니다. MySQL 컨테이너가 3306에 열린 포트를 가지고있다.docker nodejs 컨테이너 캔트 mysql 컨테이너에 연결
Docker Server ip + port에 의해 nodejs를 통해 mysql에 접근하려고 할 때. 오류 : ETIMEDOUT을 연결합니다.
로컬 컴퓨터에서 동일한 nodejs 도커 설정을 실행할 때 정상적으로 작동합니다. 내가 놓친 게있어? 여기
은 nodejs 고정 표시기-composer.yml입니다 : 여기version: '2'
services:
test-web-install:
image: example-nodejs:latest
working_dir: /home/app
volumes:
- ./:/home/app
command: sh -c 'nodemon'
environment:
- NODE_ENV=development
- DB_HOST=192.168.11.207 #or public ip in internet
- DB_PORT=3036
- DB_PASSWORD=root
- DB_USER=root
- DB_DATABASE=root
ports:
- "3000:3000"
MySQL 용 고정 표시기-composer.yml이다
mysql:
container_name: flask_mysql
restart: always
image: mysql:5.6
environment:
MYSQL_ROOT_PASSWORD: 'root' # TODO: Change this
MYSQL_USER: 'root'
MYSQL_PASS: 'root'
MYSQL_DATABASE: 'root'
volumes:
- ./data:/var/lib/mysql
ports:
- "3036:3306"
restart: always
'localhost : 3306'을 통해 mysql 컨테이너에 접근하려고합니까? UR 로컬 컴퓨터? 도커 파일/도커 작성/출력과 같은 더 많은 정보를 제공해주십시오. 지금까지 제 제안은 docker-compose를 사용하고 docker-compose dns (즉, mysql : 3306')를 사용하여 브리지 네트워크 내에서 mysql 컨테이너에 연결하는 것입니다. 설치 프로그램이 db가 node.js에서만 사용할 수 있도록 허용 할 수 있다면 섬기는 사람. – BlackStork
Sequal Pro와 같은 Mac 클라이언트에서도 DB에 액세스하고 싶습니다. 나는 그 설정 파일들을 추가했다. 도와 줘서 고맙다. – user257980