从docker容器中向localhost发出请求
我有一个应用程序运行在我的本地主机端口8080.我有一些Python代码,使用该服务。 代码在我的基础系统上运行良好,但是一旦我把它放入泊坞窗容器中,我得到urllib2.URLError: <urlopen error [Errno 111] Connection refused>
。 我有另一个应用程序,在端口6543暴露api。同样的问题。
我假设我需要告诉docker允许使用某些本地主机端口。 我怎么做?
以下是一些更具体的细节:
我可以在我的基本系统上执行这行代码:
urllib2.urlopen(req, json.dumps(dData))
但是当我试图从docker集装箱内部做到这一点时,我得到:
File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen return opener.open(url, data, timeout) File "/usr/lib/python2.7/urllib2.py", line 431, in open response = self._open(req, data) File "/usr/lib/python2.7/urllib2.py", line 449, in _open '_open', req) File "/usr/lib/python2.7/urllib2.py", line 409, in _call_chain result = func(*args) File "/usr/lib/python2.7/urllib2.py", line 1227, in http_open return self.do_open(httplib.HTTPConnection, req) File "/usr/lib/python2.7/urllib2.py", line 1197, in do_open raise URLError(err) urllib2.URLError: <urlopen error [Errno 111] Connection refused>
我已经尝试添加对docker.sock的权限
ls -l /var/run/docker.sock => srw-rw-rwx 1 root docker 0 Feb 17 11:09 /var/run/docker.sock