2017-05-08 117 views
0

我想创建2个postgrSQL容器,以便可以将其中一个用作DEV,将其他用作DEV_STAGE。在fedora的Docker中创建多个PostgreSQL容器

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

以下是我跑的命令。 须藤搬运工运行-v “pwd /数据:在/ var/lib中/ pgsql的/数据:Z” -e POSTGRESQL_USER =用户1 -e POSTGRESQL_PASSWORD =密码-e POSTGRESQL_DATABASE = TEST_DB -d -p 5432:5432米的fedora/PostgreSQL的

须藤搬运工运行-v “pwd/data_stage:在/ var/lib中/ pgsql的/ data_stage:Z” -e POSTGRESQL_USER =用户1 -e POSTGRESQL_PASSWORD =密码-e POSTGRESQL_DATABASE = TEST_DB -d -p 5432:5433米的fedora/PostgreSQL的

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

enter image description here

回答

0

感谢您的回答。我纠正了路径。我认为翻转端口号码不会起作用。因为我已经有一个映射到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 
0

你必须在第二个容器体积的定义错误。冒号后不要改变路径,强制路径设置为/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