如何将 AWS 上 Docker 中的 posgres 公开给其他应用程序?

如何将 AWS 上 Docker 中的 posgres 公开给其他应用程序?

我有一个像这样的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)
}

上述操作在我的本地可以运行,但是在 aws 中却无法运行,因为 ip 不正确。

由于我使用的是 mac,所以我需要使用 docker machine ip 来连接到 docker postgres db,但在 aws 中我没有

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

答案1

您需要将 Docker 的端口映射到主机的端口。因此,您必须添加以下内容:

-p 5432:5432

你的命令看起来应该像这样:

docker run --name my-db-name -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 postgres

相关内容