在Fedora的Docker中创build多个PostgreSQL容器

我想创build2个postgrSQL容器,以便可以将其作为DEV和DEV_STAGE。

我能够成功地创build一个容器,它已被分配到端口5432.但是,当我尝试到第二个容器时,它正在创build(有时显示状态为EXITED),但由于端口号问题没有入门。

下面是我跑的命令。 sudo docker run -v“ pwd / data:/ var / lib / pgsql / data:Z”-e POSTGRESQL_USER = user1 -e POSTGRESQL_PASSWORD =密码-e POSTGRESQL_DATABASE = test_db -d -p 5432:5432 fedora / postgresql

sudo docker run -v“ pwd / data_stage:/ var / lib / pgsql / data_stage:Z”-e POSTGRESQL_USER = user1 -e POSTGRESQL_PASSWORD =密码-e POSTGRESQL_DATABASE = test_db -d -p 5432:5433 fedora / postgresql

我认为我使用的端口映射是不正确的。 但不能得到正确的。

在这里输入图像说明

您在第二个容器的卷定义中有错误。 不要在冒号后改变path,必须将path设置为/var/lib/pgsql/data

你也翻转端口映射。 正确的命令是这样的:

 sudo docker run -v "`pwd`/data_stage:/var/lib/pgsql/data:Z" -e POSTGRESQL_USER=user1 -e POSTGRESQL_PASSWORD=password -e POSTGRESQL_DATABASE=test_db -d -p 5433:5432 fedora/postgresql 

如果出现任何问题,请使用docker logs CONTAINER_ID检查容器日志

感谢你的回答。 我纠正了path。 我认为翻转端口号码不会工作。 因为我已经有一个映射到5432的容器。所以我不能再把端口映射到5432。 下面的命令与我一起工作。 首先,我使用导出variablesPGPORT = 5433将Postgres默认端口修改为5433。


  sudo docker run -v "`pwd`/data_stg:/var/lib/pgsql/data:Z" -e PGPORT=5433 -e POSTGRESQL_USER=user1 -e POSTGRESQL_PASSWORD=password -e POSTGRESQL_DATABASE=test_db -d -p 5433:5433 fedora/postgresql