Не удается установить входящие соединения с контейнером docker

У меня есть приложение Django, запущенное на docker, которое требует доступа к учетной записи Azure Storage Accounts из него. Оно работает нормально, когда сервер Django запускается с главного компьютера, но при запуске из контейнера соединение с учетной записью Azure Storage не работает.

Я предполагаю, что каким-то образом Docker блокирует входящий трафик, поскольку я могу выполнить ping www.google.com.br из контейнера, но я никогда не получаю ответа обратно.

Раньше я работал с этим же приложением с ноутбука MacOS без проблем (приложение устанавливает соединение с Azure Service), но оно не работает с тех пор, как я изменил свою систему разработки на Linux (Linux KDE Neon).

Есть идеи, как я могу разрешить контейнерам docker получать трафик из интернета?

Спасибо.

Вот ошибка, которую я вижу, которая указывает мне, что подключение Azure Storage Account не разрешено (плюс тот факт, что это работает из контейнеров docker, когда я запускаю то же самое с ноутбука MacOs). Я думаю, что это может быть связано с ОС, но я не уверен.

<urllib3.connection.HTTPSConnection object at 0x7f1286429e10>: Failed to establish a new connection: [Errno -3] Try again')>

Вот мой Docker compose файл: Celery workers - это контейнеры, пытающиеся установить соединение с Azure:

`version: '3.8'

services:
  web-server:
    build: ./apps
    ports:
      - 8000:8000
      - 5678:5678
      - 80:80
      - 443:443
    env_file:
      - ./apps/.env
    volumes:
      - .:/home/app
      - local:/home/app/local
    depends_on:
      - redis-server

  selenium-worker:
    image: selenium/standalone-chrome
    ports:
      - 4444:4444
    volumes:
      - local:/home/app/local
    depends_on:
      - web-server
  
  redis-server:
    image: redis:7-alpine
    volumes:
      - local_redis:/home/app/local/redis
    ports:
      - 6379:6379
    command: [
      "sh",
      "-c",
      "redis-server"
    ]

  celery-worker_1:
    build: ./conf/celery-worker
    env_file:
      - ./apps/.env    
    volumes:
      - .:/home/app
      - local:/home/app/local
    depends_on:
      - redis-server
    command: python -m celery -A api.celery worker

  celery-worker_2:
    build: ./conf/celery-worker
    env_file:
      - ./apps/.env    
    volumes:
      - .:/home/app
      - local:/home/app/local
    depends_on:
      - redis-server
    command: python -m celery -A api.celery worker

  celery-worker_3:
    build: ./conf/celery-worker
    env_file:
      - ./apps/.env    
    volumes:
      - .:/home/app
      - local:/home/app/local
    depends_on:
      - redis-server
    command: python -m celery -A api.celery worker

  celery-beat:
    build: ./conf/celery-worker
    env_file:
      - ./apps/.env    
    volumes:
      - .:/home/app
    depends_on:
      - redis-server
    command: python -m celery -A api.celery beat

  celery-flower:
    build: ./conf/celery-flower
    env_file:
      - ./apps/.env
    volumes:
      - .:/home/app
      - local:/home/app/local
    ports:
      - 5555:5555
    depends_on:
      - redis-server
volumes:
  local:
  local_redis:`

Проверьте, активен ли iptables и блокирует ли он трафик, но, честно говоря, я не уверен, проблема ли это в Docker или в настройках хост-компьютера.

Вернуться на верх