如何在Docker中链接PostgreSQL容器和PgAdmin?
我有一个docker compose文件,在我的Laravel项目中提供postgres和pgadmin服务。问题是,当我执行数据库迁移时,它会成功,但当我转到pgadmin时,我看不到在那里创建的表。我想,和往常一样,我在写docker compose时犯了一个错误,我就是找不到我遗漏的东西如何在Docker中链接PostgreSQL容器和PgAdmin?,docker,Docker,我有一个docker compose文件,在我的Laravel项目中提供postgres和pgadmin服务。问题是,当我执行数据库迁移时,它会成功,但当我转到pgadmin时,我看不到在那里创建的表。我想,和往常一样,我在写docker compose时犯了一个错误,我就是找不到我遗漏的东西 version: '3' services: #PHP Service app: build: context: . dockerfile: Dockerfile
version: '3'
services:
#PHP Service
app:
build:
context: .
dockerfile: Dockerfile
image: digitalocean.com/php
container_name: app
restart: unless-stopped
tty: true
environment:
SERVICE_NAME: app
SERVICE_TAGS: dev
working_dir: /var/www
volumes:
- ./:/var/www
- ./docker/php/local.ini:/usr/local/etc/php/conf.d/local.ini
networks:
- postgres
#Nginx Service
webserver:
image: nginx:alpine
container_name: webserver
restart: unless-stopped
tty: true
ports:
- "80:80"
- "443:443"
volumes:
- ./:/var/www
- ./docker/nginx/conf.d/:/etc/nginx/conf.d/
networks:
- postgres
#Redis
redis:
image: 'redis:alpine'
ports:
- "6379:6379"
#PostgreSQL
postgres:
container_name: postgres_container
image: postgres
environment:
POSTGRES_DB: postgres
POSTGRES_USER: postgres
POSTGRES_PASSWORD: secret
PGDATA: /data/postgres
volumes:
- postgres:/data/postgres
ports:
- "5432:5432"
networks:
- postgres
restart: unless-stopped
pgadmin:
container_name: pgadmin_container
image: dpage/pgadmin4
environment:
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-pgadmin4@pgadmin.org}
PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin}
volumes:
- pgadmin:/root/.pgadmin
ports:
- "${PGADMIN_PORT:-5050}:80"
networks:
- postgres
restart: unless-stopped
#RabbitMQ
rabbit:
image: "rabbitmq:3-management"
hostname: "rabbit"
environment:
RABBITMQ_ERLANG_COOKIE: "SWQOKODSQALRPCLNMEQG"
RABBITMQ_DEFAULT_USER: "rabbitmq"
RABBITMQ_DEFAULT_PASS: "rabbitmq"
RABBITMQ_DEFAULT_VHOST: "/"
ports:
- "15672:15672"
- "5672:5672"
labels:
NAME: "rabbitmq"
#ElasticSearch
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:5.4.3
ports:
- "9200:9200"
- "9300:9300"
networks:
- postgres
#Docker网络
网络:
博士后:
司机:驾驶台
卷数:
博士后:
pgadmin:在pgadmin中,添加新服务器时,需要将“host.docker.internal”(在Windows上)定义为主机()。因为它们都位于同一个docker网络上,所以使用其他服务的名称作为主机名应该有效,如中所述。我不会为一个普通的容器间调用回主机。