我有这个
docker-compose.yml
文件,它有一个服务(
log_app
)尝试写入mysql数据库(
mydb
).
version: '3.4'
services:
mydb:
container_name: mysql_data
restart: always
image: mysql:8.0.22
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PW}
MYSQL_DATABASE: ib
MYSQL_PASSWORD: ${MYSQL_PW}
volumes:
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
- ./mysql-data:/var/lib/mysql
tws:
build: .
container_name: ib_logger_app
volumes:
- ./ib/IBController.ini:/root/IBController/IBController.ini
- ./ib/jts.ini:/root/Jts/jts.ini
environment:
TRADING_MODE: ${TWS_TRADING_MODE}
TWSUSERID: ${TWS_USER_ID}
TWSPASSWORD: ${TWS_PASSWORD}
FIXUSERID:
FIXPASSWORD:
XVFB_ARGS: -ac -screen 0 1024x768x16 +extension RANDR
restart: always
ports:
- 5901:5900
depends_on:
- mydb
log_app:
build: log_app/ib_client
environment:
- IB_GATEWAY_URLNAME=tws
- IB_GATEWAY_URLPORT=4004
- MKT_DATA_TYPE=4
restart: on-failure
depends_on:
- tws
- mydb
volumes:
mysql-data:
当我在裸机服务器上运行此程序时,一切正常,但在这种情况下,我连接到
localhost
在港口
3306
不过,这似乎在这里行不通。我明白了
Can't connect to MySQL server on 'localhost' (99)
我一直在读3306仍然是正确的端口,但是
本地服务器
和
127.0.0.1
现在错了。两者都不适合我。
我在这个网站上也看到了一些建议改变的答案
本地服务器
到
host.docker.internal
,但这给了我:
Can't connect to MySQL server on 'host.docker.internal' (111)