我真的是Docker的新手。我想用docker部署我的应用程序,并使用docker-compose来管理我的数据库(建立连接,建立初始架构)。但是我真的很困惑如何实现这一目标。这是我的配置代码:
docker-compose.yml
version: '3'
services:
db:
image: mysql
environment:
MYSQL_DATABASE: currency
MYSQL_USER: root
MYSQL_PASSWORD: ''
ports:
- "33061:3306"
web:
build: .
volumes:
- .:/code
ports:
- "3000:3000"
depends_on:
- db
当我运行docker-compose up
时,它拒绝连接数据库:
errno: 'ECONNREFUSED',
web_1 | code: 'ECONNREFUSED',
web_1 | syscall: 'connect',
web_1 | address: '127.0.0.1',
web_1 | port: 3306,
web_1 | fatal: true
请帮助。谢谢
答案 0 :(得分:0)
使用 docker networks ,然后将容器放入该网络。这样他们就可以互相交谈。在您的容器中,您可以通过其DNS名称来调用每个容器,在Web容器中,您可以将mysql主机简称为db
。请在docker-compose.yml文件下面查看
version: '3'
services:
db:
image: mysql
environment:
MYSQL_DATABASE: currency
MYSQL_USER: root
MYSQL_PASSWORD: ''
ports:
- "33061:3306"
networks:
- appnet
volumes:
-./my_mysql_data:/var/lib/mysql
web:
build: .
volumes:
- .:/code
ports:
- "3000:3000"
depends_on:
- db
networks:
- appnet
networks:
appnet:
driver: "bridge"
host: localhost;
port:33061
的客户端(Mysql Workbench,SequelPro ..etc)。然后,您可以在那里创建架构!