docker-compose with multiple databases

前端之家收集整理的这篇文章主要介绍了docker-compose with multiple databases前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我试图弄清楚如何使用docker-compose.yml和从sql转储导入的2个数据库来实现docker.

  1. httpd:
  2. container_name: webserver
  3. build: ./webserver/
  4. ports:
  5. - 80:80
  6. links:
  7. - MysqL
  8. - MysqL2
  9. volumes_from:
  10. - app
  11. MysqL:
  12. container_name: sqlserver
  13. image: MysqL:latest
  14. ports:
  15. - 3306:3306
  16. volumes:
  17. - ./sqlserver:/docker-entrypoint-initdb.d
  18. environment:
  19. MysqL_ROOT_PASSWORD: root
  20. MysqL_DATABASE: dbname1
  21. MysqL_USER: dbuser
  22. MysqL_PASSWORD: dbpass
  23. MysqL2:
  24. extends: MysqL
  25. container_name: sqlserver2
  26. environment:
  27. MysqL_ROOT_PASSWORD: root
  28. MysqL_DATABASE: dbname2
  29. MysqL_USER: dbuser
  30. MysqL_PASSWORD: dbpass
  31. app:
  32. container_name: webdata
  33. image: PHP:latest
  34. volumes:
  35. - ../PHP:/var/www/html
  36. command: "true"

以上返回以下内容

  1. Kronos:mybuild avanche$./run.sh
  2. Creating sqlserver
  3. Creating webdata
  4. Creating sqlserver2
  5. ERROR: for MysqL2 driver Failed programming external connectivity on endpoint sqlserver2 (6cae3dfe7997d3787a8d59a95c1b5164f7431041c1394128c14e5ae8efe647a8): Bind for 0.0.0.0:3306 Failed: port is already allocated
  6. Traceback (most recent call last):
  7. File "

基本上,我正在尝试将整个堆栈设置放在一个docker compose文件中,创建2个数据库并导入相应的sql转储.
有人有什么建议吗?

最佳答案
您正在尝试将两个数据库容器绑定到同一个端口 – 3306.这基本上是不可能的.
您需要更改其中一个数据库的端口映射,例如MysqL保留3306:3306,MysqL2应使用3307:3306.

猜你在找的Docker相关文章