这个泊坞窗服务是否暴露在互联网上?

时间:2017-07-27 02:24:23

标签: postgresql docker networking docker-compose dockerfile

我有一套在DigitalOcean主机上运行的docker服务(由docker-compose编排)。

摘自docker-compose.yml

web:
  build: backend_api_using_db
  ports: 
    - "80:80"
  depends_on:
    - db

db:
  image: postgres 

full version here

请注意,Docker Hub上的postgres图像描述提到它的Dockerfile有一个EXPOSE 5432(postgresql的默认端口),这就是为什么我的web服务可以成功连接到它。

是否可以从主机(互联网)外部直接连接到我的postgres数据库?从内部(ssh-> localhost)怎么样?

我问这个是因为我想知道如果我的postgres密码被公开分享会有多糟糕。攻击者可以使用它来访问我的数据库吗?

1 个答案:

答案 0 :(得分:0)

您应该在此处阅读有关Docker网络和撰写文件的信息 - > https://docs.docker.com/compose/networking/。后续文件将是 - > https://docs.docker.com/compose/compose-file/#links

在显示的示例中,您可以了解如何链接容器(web< - > db)。因此,您只需要公开Web前端端口而不是数据库端口。

上面链接中的修改示例(未测试):

version: "3"
services:

  app:
    build: ./app
    networks:
      - backend
    ports: 
      - "80:80"
  db:
    image: postgres
    networks:
      - backend

networks:
  backend:
    driver: overlay