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