如何手动将docker容器联网
我有两个docker容器:如何手动将docker容器联网,docker,Docker,我有两个docker容器: 通过docker compose启动的容器,该容器运行PostgreSQL server,可通过端口5432 通过docker run启动的容器,该容器希望访问该PostgresQL 运行以下命令: docker run -p 80:80 a609c83f4cc3 已成功启动容器,但无法访问PostgreSQL server 12:16:06.192 [error] Postgrex.Protocol (#PID<0.2150.0>) failed
- 通过
启动的容器,该容器运行PostgreSQL server,可通过端口docker compose
5432
- 通过
启动的容器,该容器希望访问该PostgresQLdocker run
docker run -p 80:80 a609c83f4cc3
已成功启动容器,但无法访问PostgreSQL server
12:16:06.192 [error] Postgrex.Protocol (#PID<0.2150.0>) failed to connect: ** (DBConnection.ConnectionError) tcp connect (localhost:5432): connection refused - :econnrefused
可以使用以下命令创建网络:
docker network create network_name
然后使用--network\u name
选项运行容器
您还可以将此网络添加到docker compose.yml
中
Docker文档中进一步介绍了Compose networking设置。您可以使用以下命令创建网络:
docker network create network_name
然后使用--network\u name
选项运行容器
您还可以将此网络添加到docker compose.yml
中
Docker文档中进一步介绍了Compose网络设置。Compose将自己创建一个名为
default
的网络。与其他Docker对象一样,它的前缀是Compose“project name”,通常是当前目录名。如果运行docker network ls
,您应该会看到一个名为something\u default
的网络
获得该网络名称后,可以将其提供给docker run
:
docker run --net something_default -p 80:80 a609c83f4cc3
您还必须将应用程序配置为连接到数据库容器;它将不在
localhost
上。独立容器应该仍然能够使用Compose提供的名称,例如,它可以使用Compose服务名称db
作为标准PostgreSQL端口5432的主机名(端口:
,如果存在则忽略)。Compose将自己创建一个名为default
的网络。与其他Docker对象一样,它的前缀是Compose“project name”,通常是当前目录名。如果运行docker network ls
,您应该会看到一个名为something\u default
的网络
获得该网络名称后,可以将其提供给docker run
:
docker run --net something_default -p 80:80 a609c83f4cc3
您还必须将应用程序配置为连接到数据库容器;它将不在
localhost
上。独立容器应该仍然能够使用Compose提供的名称,例如,它可以使用Compose服务名称db
作为标准PostgreSQL端口5432的主机名(端口:
如果存在则被忽略)。您基本上有两个选项
选项1:
如果您不熟悉docker网络命令,您可以简单地将Portainer部署为一个容器管理工具,它具有一个非常用户友好的UI,您可以使用该UI更改容器连接到哪个网络
选项2
您需要将第一个容器连接到docker-compose.yml创建的网络
首先,插入postgres容器并确定网络
docker container inspect <postgres_container> | grep Network
docker容器检查| grep网络
然后将第一个容器连接到同一网络
docker network connect <network_name/id> <first_container_name/id>
docker网络连接
然后重新启动第一个容器
docker container restart <first_container_name>
docker容器重启
您基本上有两种选择
选项1:
如果您不熟悉docker网络命令,您可以简单地将Portainer部署为一个容器管理工具,它具有一个非常用户友好的UI,您可以使用该UI更改容器连接到哪个网络
选项2
您需要将第一个容器连接到docker-compose.yml创建的网络
首先,插入postgres容器并确定网络
docker container inspect <postgres_container> | grep Network
docker容器检查| grep网络
然后将第一个容器连接到同一网络
docker network connect <network_name/id> <first_container_name/id>
docker网络连接
然后重新启动第一个容器
docker container restart <first_container_name>
docker容器重启