如何在 docker-compose 中为我的 docker 容器提供互联网访问权限?

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

因此,我的容器正在尝试通过 Azure 的 API -

https://models.inference.ai.azure.com/chat/completions
完成聊天,但它无法访问互联网。我已将其连接到桥接网络,添加了许多 dns,但仍然不起作用。如果您知道如何修复 - 请帮助我。预先感谢!

assistant:
    image: ghcr.io/kiroshi-ai/kiroshi-ai-assistant:v1
    build:
      context: ./assistant
      dockerfile: Dockerfile
    ports:
      - "3500:3500"
    depends_on:
      - surrealdb
      - redis
      - loki
      - nats

    dns:
      - 8.8.8.8
      - 8.8.4.4
      - 1.1.1.1
      - 9.9.9.9
      - 168.63.129.16
      - 20.62.61.128
      - 20.98.195.77
      - 84.200.69.80
      - 8.26.56.26
      - 208.67.222.222
      - 10.254.254.254
    extra_hosts:
      - "host.docker.internal:host-gateway"
    networks:
      - default
      - db
      - logs
      - nats
      - nginx


networks:
  default:
    driver: bridge
  db:
    name: kiroshi-ai-db-network
  logs:
    name: kiroshi-ai-logs-network
  nats:
    name: kiroshi-ai-nats-cluster
  nginx:
    name: kiroshi-ai-nginx-network
docker network-programming docker-compose
1个回答
0
投票

忘记了。我稍微修改了您的 compose 配置以自行构建并启动此 docker 服务,而不需要 surrealdb、redis、loki 和 nats 服务。我的撰写配置如下:

服务:
  助手:
    图片:ghcr.io/kiroshi-ai/kiroshi-ai-assistant:v1
    建造:
      上下文:./助理
      上下文:.
      dockerfile:Dockerfile
      dockerfile_内联:|
        来自 debian:书虫
 端口:
      - “3500:3500”
 取决于:
      - 超现实数据库
      - 雷迪斯
      - 洛基
      - 纳兹

 命令:
      - 睡觉
      - “3600”

    域名:
      - 8.8.8.8
      - 8.8.4.4
      - 1.1.1.1
      - 9.9.9.9
      - 168.63.129.16
      - 20.62.61.128
      - 20.98.195.77
      - 84.200.69.80
      - 8.26.56.26
      - 208.67.222.222
      - 10.254.254.254
    额外主机:
      - “host.docker.internal:主机网关”
    网络:
      - 默认
      - 数据库
      - 日志
      - 纳兹
      - nginx



网络:
  默认:
    司机:桥
  数据库:
    名称:kiroshi-ai-db-network
  日志:
    名称:kiroshi-ai-logs-network
  纳兹:
    名称:kiroshi-ai-nats-cluster
  nginx:
    名称:kiroshi-ai-nginx-network

因此,一般来说,您的撰写服务可以访问全球网络。我检查了下一个方法:

  • docker compose up -d
    构建并启动服务
  • docker compose exec -it assistant  sh
    进入容器环境
  • apt update && apt install -y iputils-ping
    安装 ping 实用程序
  • 最后,检查从正在运行的容器对 api 的访问:
# ping amazon.com
PING amazon.com (205.251.242.103) 56(84) bytes of data.
64 bytes from s3-console-us-standard.console.aws.amazon.com (205.251.242.103): icmp_seq=1 ttl=230 time=202 ms
64 bytes from s3-console-us-standard.console.aws.amazon.com (205.251.242.103): icmp_seq=2 ttl=230 time=222 ms
64 bytes from s3-console-us-standard.console.aws.amazon.com (205.251.242.103): icmp_seq=3 ttl=230 time=245 ms
^C
--- amazon.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 202.095/223.137/245.254/17.635 ms

尝试重现,如果仍然无法从 docker 访问 amazon.com,请检查是否可以从主机系统访问 amazon。

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