我使用docker-compose开发了一个网站,其中包括一个Postgresql数据库。我把它部署在服务器上,使用相同的 docker-compose.yml
文件,但我发现我可以使用psql远程访问我的postgres服务器。
目前我在我的docker-compose里有这样几行字
version: '3.6'
services:
db:
image: postgres
ports:
- 5432:5432
environment:
POSTGRES_DB: my_website
POSTGRES_USER: my_website
POSTGRES_PASSWORD: my_password
有谁知道我如何才能只允许从docker网络内访问postgres数据库,从而使其不能从主机操作系统之外访问?
目前,你正在绑定端口 5432
在docker容器内,通过使用 ports
指令。要想让端口只在你的本地docker网络中访问,请修改 ports
到 expose
version: '3.6'
services:
db:
image: postgres
expose:
- "5432"
environment:
POSTGRES_DB: my_website
POSTGRES_USER: my_website
POSTGRES_PASSWORD: my_password