解决这个问题的方法是通过创建一个新的 pgAdmin 容器,并将其连接到要访问的不同的 Docker 容器中的数据库。
以下是一个示例解决方法的代码:
docker run --name my-pgadmin -p 5050:5050 -e PGADMIN_DEFAULT_EMAIL=user@domain.com -e PGADMIN_DEFAULT_PASSWORD=password -d dpage/pgadmin4
import os
import json
import requests
# 获取要访问的 Docker 容器的 IP 地址和端口号
container_ip = os.environ.get('CONTAINER_IP')
container_port = os.environ.get('CONTAINER_PORT')
# 获取 pgAdmin 容器的 IP 地址和端口号
pgadmin_ip = os.environ.get('PGADMIN_IP')
pgadmin_port = os.environ.get('PGADMIN_PORT')
# 创建一个新的服务器对象
server = {
'name': 'My Docker Container',
'host': container_ip,
'port': container_port,
'database': 'mydatabase',
'username': 'myuser',
'password': 'mypassword',
'sslmode': 'prefer'
}
# 添加服务器到 pgAdmin
data = {
'name': 'My Docker Container',
'host': container_ip,
'port': container_port,
'username': 'myuser',
'password': 'mypassword',
'sslmode': 'prefer',
'database': 'mydatabase'
}
response = requests.post(f'http://{pgadmin_ip}:{pgadmin_port}/api/servers', data=json.dumps(data))
请注意,上述代码中的环境变量 CONTAINER_IP
,CONTAINER_PORT
,PGADMIN_IP
和 PGADMIN_PORT
需要根据实际情况进行设置。
通过运行上述代码,您将能够在一个 pgAdmin 容器中访问不同的 Docker 容器中的数据库。