【问题标题】:Connect two docker containers连接两个 docker 容器
【发布时间】:2018-03-01 19:22:18
【问题描述】:

我有两个容器,第一个带有django,第二个带有postgresql

嗯,在我的第一台服务器上,我运行了django,我正在尝试将它与第二台服务器连接起来。 第二个容器暴露了端口32770,但内部在端口5432 中运行。 在我的本地机器上,我有连接: 服务器:“本地主机” 端口:32770 用户:'我的用户' 密码:''

它正在连接,但使用我的 django 容器时,我收到此错误:

could not connect to server: Connection refused
    Is the server running on host "localhost" (127.0.0.1) and accepting
    TCP/IP connections on port 32770?

端口5432也是如此

如何连接两台服务器?

【问题讨论】:

  • 您是使用 docker-compose 运行容器还是单独运行容器?发布您的 docker-compose 文件或您使用过的 docker run 命令
  • 我正在单独运行它们@TarunLalwani

标签: django postgresql docker


【解决方案1】:

由于您是单独运行容器,因此您有不同的选择

在 postgres 容器网络上运行 django

$ docker run -d ... postgres
<container id>

$ docker run -d ... --net container:<containerid> django

然后django可以在localhost:5432上找到postgres

将 django 和 postgres 作为命名容器运行

$ docker run --name postgresdb -d ... postgres
<container id>

$ docker run -d ...  django

现在django可以在postgresdb:5432上找到db

在主机上运行两个容器

$ docker run --net host -d ... postgres
<container id>

$ docker run -d ... --net host django

然后django可以在localhost:5432上找到postgres

在同一网络上运行容器

$ docker network create mynet

$ docker run --name postgresdb --net mynet -d ... postgres
<container id>

$ docker run --net mynet -d ...  django

现在django可以在postgresdb:5432上找到db

连接到主机 IP 和映射端口

$ docker run -d -p 32770:5432 .... postgres

$ docker run -d .... django

Django 现在可以连接到&lt;yourdockerhostip&gt;:32770 上的数据库。

更好的选择是使用docker-compose 运行它。在https://docs.docker.com/compose/了解更多信息

【讨论】:

  • 很好的答案,有很多选项可以实现这一点。我运行了一个新网络并将两个容器都连接到它。注意,如果容器不在同一个网络上,我不确定第二个选项是否有效
【解决方案2】:

如果你发送了你的配置文件会更好。但是,我认为你需要使用docker-compose。在文档中,您可以找到有关容器之间的通信的信息。

简单配置示例:

system_mysql:
  image: mysql:5.6.27
  container_name: system_mysql
  hostname: system_mysql
  environment:
    - MYSQL_ROOT_PASSWORD=password
    - MYSQL_USER=user
    - MYSQL_PASSWORD=password
    - MYSQL_DATABASE=databse
  ports:
    - "3306:3306"
django:
  restart: always
  container_name: django
  hostname: django
  .
  . continue with [environment, volumes, build]
  .
  depends_on:
    - system_mysql

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-24
    • 2021-01-26
    • 2018-06-16
    • 2020-01-06
    • 1970-01-01
    • 2019-04-20
    • 2019-10-27
    • 2021-09-22
    相关资源
    最近更新 更多