在 fedora 的 docker 中创建多个 PostgreSQL 容器

Creating multiple PostgreSQL containers in docker in fedora

我想创建 2 个 postgrSQL 容器,这样一个可以用作 DEV,另一个可以用作 DEV_STAGE。

我能够成功创建一个容器并将其分配给端口 5432。但是当我尝试创建第二个容器时,它正在创建(有时显示状态为 EXITED)但没有开始,因为端口号问题。

下面是我运行的命令。 sudo docker 运行 -v "pwd/data:/var/lib/pgsql/data:Z" -e POSTGRESQL_USER=user1 -e POSTGRESQL_PASSWORD=password -e POSTGRESQL_DATABASE=test_db -d -p 5432:5432 fedora/postgresql

sudo docker 运行 -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

我认为我使用的端口映射不正确。但无法获得正确的。

第二个容器的卷定义有误。不要更改冒号后的路径,路径必须设置为 /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

检查容器日志

感谢您的回答。我纠正了路径。我认为翻转端口号也不行。因为我已经有一个映射到5432的容器。所以我不能再将端口映射到5432。以下命令对我有用。首先,我使用导出变量 PGPORT=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