2016-12-19 61 views
2

我正在写一个在2个容器中dockerized的去应用程序:db和app。无法连接到码头集装箱内的postgresql

同时启动集装箱的码头工人,组成了“我看到消息:拨号TCP:上127.0.0.11:53查找dbpgsql:没有这样的主机

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

这里是我的码头工人,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 

该应用这里失败时执行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) 
} 
+0

您是否需要将端口53映射到泊坞窗图像中? –

回答