2017-07-27 13 views
1

gl.canvas.set_target('ipynb')を実行すると、ドッキングコンテナに次の例外がスローされます。tornado/graphlabドッカーで要求されたアドレスを割り当てることができません

gl.canvas.set_target('ipynb', port=28892)でも、28892はオープンポートですが、エラーは同じです。

--------------------------------------------------------------------------- 
error          Traceback (most recent call last) 
<ipython-input-257-3f215a521352> in <module>() 
----> 1 gl.canvas.set_target('ipynb') 

/opt/conda/envs/gl-env/lib/python2.7/site-packages/graphlab/canvas/utils.pyc in set_target(target, port) 
    102    # and to preserve backwards compatibility/other use cases 
    103    # (running a notebook exported to .py, for instance) 
--> 104   _active_target = targets[target]() 
    105 
    106  # track metrics on target 

/opt/conda/envs/gl-env/lib/python2.7/site-packages/graphlab/canvas/target.pyc in __init__(self, port) 
    25   self.state = graphlab.canvas.state.State() 
    26   # TODO server is not necessary in static IPython/Jupyter Notebook 
---> 27   self.server = graphlab.canvas.server.Server(self.state, port) 
    28   # add data objects to left nav 
    29   DataView = graphlab.canvas.views.data_objects.DataObjectsView() 

/opt/conda/envs/gl-env/lib/python2.7/site-packages/graphlab/canvas/server.pyc in __init__(self, state, port) 
    44 
    45   #Will raise exception if port cannot be bound 
---> 46   self.__bind_socket(port) 
    47 
    48  # methods 

/opt/conda/envs/gl-env/lib/python2.7/site-packages/graphlab/canvas/server.pyc in __bind_socket(self, port) 
    93  # Raises exception if socket cannot be bound on requested port 
    94  def __bind_socket(self, port=None): 
---> 95   sockets = tornado.netutil.bind_sockets(port,"localhost") 
    96   self.__server.add_sockets(sockets) 
    97   with self.__port_lock: 

/opt/conda/envs/gl-env/lib/python2.7/site-packages/tornado/netutil.pyc in bind_sockets(port, address, family, backlog, flags, reuse_port) 
    194 
    195   sock.setblocking(0) 
--> 196   sock.bind(sockaddr) 
    197   bound_port = sock.getsockname()[1] 
    198   sock.listen(backlog) 

/opt/conda/envs/gl-env/lib/python2.7/socket.pyc in meth(name, self, *args) 
    226 
    227 def meth(name,self,*args): 
--> 228  return getattr(self._sock,name)(*args) 
    229 
    230 for _m in _socketmethods: 

error: [Errno 99] Cannot assign requested address 

ホストマシンで同じコマンドが機能ので、graphlab問題よりドッカ/竜巻の問題のようなよりに見えます。

私は、以下のコマンドを使用して、私のドッキングウィンドウコンテナを開始しました:

sudo docker run -it -v /path/to/data:/root/data \ 
    -v ~/code/work/src:/root/src \ 
    -p 8888:8888 -p 28892:28892 company/graphlab \ 
    /bin/bash -c "source activate gl-env && jupyter notebook --notebook-dir=~/src --ip='*' --port=8888 --no-browser" 

私はそれを開くことができるように、このポートを把握するための方法や、この問題を解決する他の方法はありますか?

答えて

2

localhostの1つのIPアドレス値のみを含むように/ etc/hostsファイルを編集すると、私の問題が解決します。実行中のコンテナで編集する場合にのみ機能します。イメージを構築するときにそれを編集しても問題は解決しません。

127.0.0.1 localhost 
::1 localhost ip6-localhost ip6-loopback 

私はそれらを変更する必要がありました:

127.0.0.1 localhost 
::1 ip6-localhost ip6-loopback 
私の/ etc/hostsの行を持っているコンテナからの起動時に

関連する問題