Основываясь на 'Python: 2.7' изображения, я создал два контейнера: container1, container2Докер: открытые порты не могут быть доступны в другом контейнере
Dockerfile для test1:
FROM python:2.7
EXPOSE 6789
CMD ["bash", "-c", "'while true;do sleep 1000;done;'"]
Dockerfile для test2:
FROM python:2.7
EXPOSE 9876
CMD ["bash", "-c", "'while true;do sleep 1000;done;'"]
Тогда я построил два новых изображения с вышеупомянутым dockerfiles, по имени: test1, test2
container1:
docker run --name container1 test1
И я также настроить сервер Django на порту 6789 в container1 с:
#In Django workspace
./manage.py runserver 6789
container2:
docker run --name container2 --link container1:container1 test2
И я также настроить сервер Django на порту 9876 в контейнере2 с:
#In Django workspace
./manage.py runserver 9876
В container2, когда я бег
curl container1_ip:6789
Я получил соединение отказалось ошибки.
Как его настроить, чтобы он работал?
Я также создал контейнер с официальным Nginx изображение, оно имеет два порта по умолчанию (80, 443), подвергшегося, а затем создал другой контейнер связан с Nginx контейнер, в контейнере, я сделал то же самое
curl nginx_ip:80 #successful
и
curl nginx_ip:443 #connection refused
Почему это происходит? Почему 80 работает хорошо, а 443 не работает?
Не похоже, что у вас есть что-нибудь * прослушивание * на этих портах? – larsks
По крайней мере, работает 'ping container1_ip from container2'? – VonC
Возможно, вы обнаружили порт, но не привязываете к ним какой-либо процесс. Поскольку процесс соединения _accept_ отсутствует, вы получаете сообщение об ошибке «connection reject». – Auzias