使 Posrgres Docker 容器仅可通过 SSH 访问

问题描述 投票:0回答:1

据我所知,拒绝从互联网访问带有数据库的 Docker 容器(在我的例子中是 Postgres)是基本的安全措施。但怎么做呢?我当前的 docker-compose.yaml 是:

version: "3.5"

services:

  Database:

    image: postgres
    container_name: Example-Production-Database
    ports: [ "${DATABASE_PORT}:${DATABASE_PORT}" ]

    environment:

      - POSTGRES_PASSWORD=${DATABASE_PASSWORD}

    volumes:
      - DatabaseData:/data/example.jp

volumes:
  DatabaseData: {}
postgresql docker docker-compose ssh
1个回答
0
投票

您没有显示

[ "${DATABASE_PORT}:${DATABASE_PORT}" ]
中的内容,但是 我认为它会翻译成类似
'5432:5432'
的东西,相当于 短格式:

ports:
  - 0.0.0.0:5432:5432/tcp

意味着默认情况下您将端口发布给外界查看(

0.0.0.0
)。将其更改为:

ports:
  - 127.0.0.1:5432:5432

并且该端口仅绑定到本地主机,外部任何人都无法再访问它。

© www.soinside.com 2019 - 2024. All rights reserved.