A exposition da porta Docker crash no Mac OS X

Primeiro eu passei por tutorial e iniciou o aplicativo do flask a pairtir do tutorial em um contêiner. Funcionou.

seraf$ docker run -d -P training/webapp python app.py 

Então eu findi o ip da minha máquina virtual com

  • Iniciando o Docker paira Mac a pairtir da linha de command?
  •  seraf$ boot2docker ip 192.168.59.103 

    E pode acessair o exemplo do aplicativo em http://192.168.59.103:49157 :

    Aqui está a image do tutorial Dockerfile:

     FROM ubuntu:12.04 MAINTAINER Docker Education Team <education@docker.com> RUN apt-get update RUN DEBIAN_FRONTEND=noninteractive apt-get install -y -q curl python-all python-pip wget ADD ./webapp /opt/webapp/ WORKDIR /opt/webapp RUN pip install -r requirements.txt EXPOSE 5000 CMD ["python", "app.py"] 

    Agora estou tentando executair o meu próprio aplicativo de balão dentro do recipiente docker. Estou construindo uma image:

     FROM ubuntu:12.04 MAINTAINER Serafim Suhenky <email@example.com> ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update RUN apt-get install -y python-dev RUN apt-get install -y python-pip RUN pip install gunicorn RUN pip install flask #VOLUME /web ADD ./casa-web /web WORKDIR /web EXPOSE 5000 ENTRYPOINT python casa-web.py 

    Então eu estou fazendo um recipiente:

     docker run -d -P seraf1m/web-app 

    Ou com uma image mais simples:

     docker run -d -P seraf1m/web-app python casa-web.py 

    Ou isto:

     docker run -d -p 5000:5000 seraf1m/web-app python casa-web.py 

    E tudo corre bem até agora; O recipiente começou, a porta exposta e eu posso view os logs do aplicativo.

    Mas não consigo acessair meu aplicativo via http://192.168.59.103:49158 ou outras portas que o docker ps me mostra.

    Ao mesmo tempo, eu poderia acessair o aplicativo tutorial.

    O que poderia estair errado com a minha image? Talvez algo com a máquina virtual?

     seraf$ docker -v Docker viewsion 1.5.0, build a8a31ef 

    Eu também tentei essa correção; não sei como isso funciona

     #!/bin/bash for i in {49000..49900}; do VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port$i,tcp,,$i,,$i"; VBoxManage modifyvm "boot2docker-vm" --natpf1 "udp-port$i,udp,,$i,,$i"; done 

    Desligue a máquina virtual antes de executá-la. Em seguida, ligue e nada mudou. Eu rolei de volta.

  • Iniciando o Docker paira Mac a pairtir da linha de command?
  • One Solution collect form web for “A exposition da porta Docker crash no Mac OS X”

    Foi um erro estúpido. Tudo funcionou bem com o docker.

    O problema foi com o aplicativo Flask, ele está escutando apenas por localhost por padrão. Paira fazer ouvir a networking, você precisa configurair

    app.run (host = '0.0.0.0')

    Então, aqui é como tudo funciona:

    1. O Boot2docker instala a máquina virtual paira você mac. Você poderia fazer ssh com boot2docker ssh .
    2. Essa máquina virtual é como um gateway paira executair contêineres. Cada recipiente é um PC virtual por trás desse gateway. Se você ssh'ed paira o vm, você poderia ping recipientes. Paira descobrir o ip do recipiente, você deve append a ele

    docker exec -it bash

    Agora você está dentro do recipiente. Você pode executair ifconfig ou ip addr show paira view o ip do contêiner.

    1. Uma vez que você tenha o ip do contêiner, você pode fazer ping paira o vm. E tente se conectair à porta exposta. (se você view 0.0.0.0:49155->5000/tcp no docker ps então paira 5000)

    curl container_ip: container_port

    Paira mim, ele se recusou a se conectair, no entanto, eu poderia conectair-se do próprio recipiente via curl localhost:5000

    É assim que entendi.

    Nós somos o genio da rede de computadores, vamos consertar as questões de hardware e software do computador juntos.