No se puede conectar a postgresql que está dentro de un contenedor de docker

Estoy escribiendo una aplicación go que está dockerized en 2 contenedores: db y app.

al iniciar contenedores 'docker-componen', veo el post: marcar tcp: lookup dbpgsql en 127.0.0.11:53: no hay tal host

DB_ENV_DB=cldb DB_ENV_USER=cldb DB_ENV_PASS=cldb DB_PORT_5432_TCP_ADDR=dbpgsql DB_PORT_5432_TCP_PORT=5432 

aquí está mi docker-compose.yml

 version: '2' services: server: hostname: app image: golang:1.7.3-alpine build: ./server/ privileged: true container_name: server command: go run server.go volumes: - ../src/:/go/src/ - ../server.go:/go/server.go links: - db:db ports: - '8080:8080' env_file: environment db: hostname: dbpgsql image: postgres:latest container_name: db environment: POSTGRES_USER: cldb POSTGRES_PASSWORD: cldb POSTGRES_DB: cldb ports: - '5432:5432' volumes: - ./data:/docker-entrypoint-initdb.d 

La aplicación falla aquí cuando se ejecuta DB.Ping ():

 func InitDB(dataSourceName string) { var err error DB, err = sql.Open("postgres", dataSourceName) if err != nil { log.Panic(err) } if err = DB.Ping(); err != nil { log.Panic(err) } DB.SetMaxIdleConns(100) } 

Puede conectarse a la database con el nombre del service (o el nombre del alias dado en las opciones de enlaces), en su caso es db . La opción de nombre de host establece el nombre de host por el cual el contenedor se conoce a sí mismo. Pero no aparecerá en docker ps ni en el file / etc / hosts de ningún otro contenedor. ( https://docs.docker.com/engine/userguide/networking/default_network/configure-dns/ )