Не удается установить входящие соединения с контейнером 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 или в настройках хост-компьютера.