【发布时间】:2019-11-14 23:29:32
【问题描述】:
我正在设置我的第一个 postgresql docker 容器,作为使用 docker compose 的分布式应用程序的一部分,我对 compose 文件的语法有些困惑。对 docker 来说还是很新的,所以如果这是直接从 docker 101 出来的,请原谅我。
这是我在 docker-compose.yml 中的 postgres 容器的样子:
version: '2'
services:
database:
image: postgres
container_name: database-container-name
environment:
- POSTGRES_PASSWORD=some_password_here
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- PGDATA=/var/lib/postgresql/data/db-files/
ports:
- 5433:5432
volumes:
- ./.db/data:/var/lib/postgresql/data:delegated
- ./.db/init:/docker-entrypoint-initdb.d
volumes 位让我陷入了循环。有人可以解释那里发生了什么,容器是否将其 /.db/data/ 文件夹映射到我的本地 /var/lib/postgresql/data 文件夹?我查看了一些文档,但没有深入了解。
另外,在上面的端口部分中,5433:5432 是怎么回事?这是否意味着我的端口 5433 映射到 docker 容器的端口 5432?如果是这样,这是否意味着如果我在我的机器上的端口 5433 上连接到 psql 或 pgAdmin,它会静默映射到 docker 容器中的 postgresql 实例?
【问题讨论】:
-
对于卷:情况正好相反。与端口映射一样,首先是本地的,然后是容器内的。
标签: postgresql docker docker-compose