【问题标题】:How to add internet accsess to container in docker compose?如何在 docker compose 中添加对容器的 Internet 访问?
【发布时间】:2021-05-26 14:44:37
【问题描述】:
    ---
version: "3.6"

services:
  postgres:
    image: postgres:alpine
    restart: on-failure
    environment:
      - POSTGRES_USER=${APP_POSTGRES_USER:-postgres}
      - POSTGRES_PASSWORD=${APP_POSTGRES_PASS:-postgres}
      - POSTGRES_DB=${APP_POSTGRES_DB:-my_proj}
    ports:
      - "5566:5432"
  server:
    container_name: my_proj_app
    hostname: my_proj_app
    build:
      context: .
    depends_on:
      - postgres
    network_mode: host
    environment:
      - PORT=8080
      - HOST=my_proj_app
    ports:
      - "8080:8080"

这是我的 docker-compose.yml 我无法从 my_proj_app 容器 ping google.com。 有人知道我做错了什么吗?

【问题讨论】:

    标签: docker networking docker-compose


    【解决方案1】:

    错误在这里解释https://docs.docker.com/network/host/:您使用了主机网络模式,与NAT不同,无法访问外部网络。

    主机模式网络可用于优化性能,并且在容器需要处理大量端口的情况下,因为它不需要网络地址转换 (NAT),并且没有为每个端口。

    尝试评论network_mode: host。

    【讨论】:

    • 评论没有帮助(
    • 请告诉我您是否解析容器内的主机名。
    • 不,我刚刚评论了 network_mode: host
    • 抱歉,我的问题是:你解析容器内的主机名吗? RUN ping google.com ping google.com 打印 IP 地址?
    • docker exec my_proj_app ping google.com 这个命令挂起
    猜你喜欢
    • 1970-01-01
    • 2017-02-16
    • 1970-01-01
    • 2017-10-12
    • 2021-07-19
    • 1970-01-01
    • 2018-08-19
    • 2020-05-25
    相关资源
    最近更新 更多