首页 > 解决方案 > 在 Mac 上使用 docker compose 从 docker 容器内连接到 Internet

问题描述

我有一个相当简单的 docker-compose 文件,如下:

version: "3.8"

services:
  synchronisation:
    build: .
    command: 'python3 manage.py runserver 0.0.0.0:8000'
    networks: 
      - syncnet
    ports:
      - "8000:8000"
      - "8008:8008"
    volumes:
      - .:/var/lib/django
      - packages:/usr/local/lib/python3.6/site-packages

  neo4j:
    image: neo4j:3.5.3
    networks: 
      - syncnet
    ports:
      - "7687:7687"
      - "7474:7474"
      - "7473:7473"
    environment:
      NEO4J_AUTH: none

volumes:
  packages:
    driver: local
    driver_opts:
      type: none
      device: <somefolder>
      o: bind

networks:
  syncnet:
    name: sync_network

现在,synchronisation我需要从应用程序向应用程序neo4j和“外部世界”执行一些请求。连接neo4j成功,但与外界的连接似乎失败。特别是如果我进入synchronisation容器并运行

ping google.com

我得到结果

PING google.com (172.217.17.46) 56(84) bytes of data.
^C
--- google.com ping statistics ---
7 packets transmitted, 0 received, 100% packet loss, time 6149ms

我已经设置了

sudo sysctl -w net.inet.ip.forwarding=1

我怎样才能进入“外部世界”工作?很高兴知道我正在使用 Mac 10.15.7 工作。

标签: dockerdocker-compose

解决方案


推荐阅读