Docker、docker-compose 应用程序设置

Docker、docker-compose 应用程序设置

我开始将我的应用程序迁移到 Docker 容器:我使用 Ngnix、supervisord、gunicorn、python flask、celery、flower、lighttpd、RabbitMQ 和 Postgresql。在我原来的虚拟机中,我将所有配置保存在 /usr/local/src/application/conf/ 下。在 settings.py 中,我定义了:

SQLALCHEMY_DATABASE_URI

在 celeryconfig.py 中我定义:

BROKER_URL

我将创建 5 个容器:

  • Ngnix 负载均衡器
  • Flask 接口
  • 芹菜
  • RabbitMQ
  • Lighttpd

我正在使用 docker-compose 和卷。由于现在我的所有 IP 地址都是 localhost (127.0.0.1)

  1. 对于我每个容器访问通用配置有什么建议?卷?

  2. 我如何知道每个容器分配了哪个 IP 地址,以便我可以定义我的设置?例如,当 RabbitMQ 启动时,我应该在 BROKER_URL 中配置哪个 IP?

  3. 由于我的 Docker 应用程序仍将指向我的 git repo,我可以将其指向我的主机文件夹吗,我应该在这里使用卷吗?

基础设施

答案1

  1. 关于您的配置,您可以直接使用 env_file 为文件或环境传递组合环境变量:https://docs.docker.com/compose/compose-file/#env-file
  2. 对于 IP,当您在 Compose 中链接容器时,您在 yml 中设置的容器名称将是此容器的主机名。您不需要 IP,只需要用户名。您可以通过在 Compose 容器中执行 exec bash 并尝试使用其名称 ping 另一个容器来尝试此操作。
  3. 你说的“指向你的主机文件夹”是什么意思?尝试将尽可能多的内容直接放入容器中,但如果你真的需要将一些数据提取到你的主机 FS,那么是的,你将需要卷。

相关内容