我在數字海洋中運行Docker服務器。在那裏我有兩個容器Nodejs和Mysql。 Mysql容器的開放端口爲3306.docker nodejs容器無法連接mysql容器
當試圖通過Docker Server的ip +端口通過nodejs訪問mysql時。我收到錯誤:連接ETIMEDOUT。
當我在本地計算機上運行相同的nodejs docker設置時,它工作正常。有什麼我失蹤?
這裏是碼頭工人的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"
這裏是碼頭工人,composer.yml爲MySQL
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容器上喲你的本地電腦?請提供更多信息 - 碼頭文件/ docker-compose/outputs。到目前爲止,我的建議是使用docker-compose,並使用docker-compose dns(例如'mysql:3306')連接到橋網絡內的mysql容器,如果你的安裝程序允許數據庫只能訪問你的node.js服務器。 – BlackStork
我想通過像Sequal Pro這樣的Mac客戶端訪問數據庫。我添加了這些設置文件。感謝您的幫助。 – user257980