Postgresql golang应用程序如何使用aws服务器中的docker与postgres对话?

Postgresql golang应用程序如何使用aws服务器中的docker与postgres对话?,postgresql,amazon-web-services,docker,go,Postgresql,Amazon Web Services,Docker,Go,我有一个像这样的docker实例 docker run --name my-db-name -e POSTGRES_PASSWORD=mysecretpassword -d postgres:latest 在服务器中运行 我让docker在同一台服务器上运行我的golang应用程序 func main() { db, _ := sql.Open("postgres", "postgres://postgres:@192.168.99.100:5432/postgres?sslmode=

我有一个像这样的docker实例

docker run --name my-db-name -e POSTGRES_PASSWORD=mysecretpassword -d postgres:latest
在服务器中运行

我让docker在同一台服务器上运行我的golang应用程序

func main() {
    db, _ := sql.Open("postgres", "postgres://postgres:@192.168.99.100:5432/postgres?sslmode=disable")

    http.HandleFunc("/test", handler)
    http.ListenAndServe(":8080", nil)
}
由于ip不正确,上述操作不起作用

由于我使用mac,我需要使用docker机器ip连接到docker postgres db,但在aws中我没有


配置此功能的好方法是什么?

您是否在询问如何为本地开发和AWS配置不同的环境

如果是这样,您可以使用如下环境变量:

env := os.Getenv("GO_ENV")
dbIP := "DOCKER_MACHINE_IP"
if env == "production" {
    dbIP = "AWS_POSTGRES_IP"
}

只需将
GO_ENV
环境变量设置为
production
即可提供给AWS上的docker容器。

您是否在询问如何为本地开发和AWS配置不同的环境

如果是这样,您可以使用如下环境变量:

env := os.Getenv("GO_ENV")
dbIP := "DOCKER_MACHINE_IP"
if env == "production" {
    dbIP = "AWS_POSTGRES_IP"
}
只需将
GO_ENV
环境变量设置为
production
即可提供给AWS上的docker容器。

在docker中,您可以设置(虚拟,因为没有更好的词)网络,这些网络随DNS服务器一起提供。之后,您可以使用
my db name
访问Postgres。阅读,然后继续提问,以防你还有问题。还有一种(但可能很快就会被弃用,谁知道呢)对这种情况很方便。在Docker中,你可以设置(虚拟的,因为没有更好的词)网络,它附带一个DNS服务器。之后,您可以使用
my db name
访问Postgres。如果你还有问题,请阅读,然后继续提问。还有一种方法(但它可能很快就会被弃用,谁知道呢)适用于此类情况。