2015-12-06 2 views
1

Я думаю, что я пропускаю что-то очевидное, но я, похоже, не могу взломать этот. Я пытаюсь отобразить порт из приложения django, запускающего uwsgi в контейнере докера, на мой локальный компьютер Macintosh. Вот настройка.картинка портпорта портативного контейнера

Mac 10.11 работает докер-машина 0.5.1 с VirtualBox 5.0.10 и докер 1.9.1

Я создал сервер с установки докер-машина мой файл Докер и успешно построил мой Docker контейнер. В контейнере у меня есть следующая команда:

# Port to expose 
EXPOSE 8000 

Какая карта на порт, используемый через uwsgi внутри контейнера. Когда я развожу его контейнер через

eval "$(docker-machine env dev)" 
docker-machine ip dev 
192.168.99.100 

docker run -P launch 

Контейнер запускается должным образом. Если я вхожу в контейнер и выполняю команду

curl http://localhost:8000 

Я получаю свой HTML, как и следовало ожидать. На внешней стороне грузчиком инспектировать container_id получает мне

"Ports": { 
     "8000/tcp": [ 
      { 
       "HostIp": "0.0.0.0", 
       "HostPort": "32768" 
      } 
     ] 
    }, 

Так я могу видеть отображение на 32768 на докер-машины хозяина 192.168.99.100 как из приведенных выше команд. Однако всякий раз, когда я пытаюсь и свернуться http://192.168.99.100:32768

curl http://192.168.99.100:32768 
curl: (7) Failed to connect to 192.168.99.100 port 32768: Connection refused 

так что любые мысли по этому ?? Все должно работать так, как я понимаю докер.

Благодаря Craig

+0

Можете ли вы опубликовать «Докер-файл» или, по крайней мере, конфигурацию и команду используется для запуска сервера uwsgi? Это пахнет, поскольку uwsgi только прослушивает 127.0.0.1 ... –

ответ

0

Поскольку вы работаете через VirtualBox VM, я бы рекомендовал отображение порта на уровне VirtualBox, как я уже в «How to connect mysql workbench to running mysql inside docker?»

VBoxManage controlvm "boot2docker-vm" --natpf1 "tcp-port8000 ,tcp,,8000,,8000" 
VBoxManage controlvm "boot2docker-vm" --natpf1 "udp-port8000 ,udp,,8000,,8000" 

И запустить контейнер с явным отображением портов (вместо случайного -P)

docker run -p 8000:8000 launch 
Смежные вопросы