proxy_pool icon indicating copy to clipboard operation
proxy_pool copied to clipboard

docker容器启动出错

Open iyzyi opened this issue 5 years ago • 3 comments

启动命令:

docker run --env db_type=REDIS --env db_host=127.0.0.1 --env db_port=6379 --env db_password=pwd_str -p 50014:5010 jhao104/proxy_pool

错误:

2020-04-04 21:41:40,653 ProxyManager.py[line:66] ERROR Error 111 connecting to 127.0.0.1:6379. Connection refused.
2020-04-04 21:41:40,653 ProxyManager.py[line:46] INFO ProxyFetch - freeProxy14: start
2020-04-04 21:41:40,740 ProxyManager.py[line:61] INFO ProxyFetch - freeProxy14: 36.248.133.5:9999    success
2020-04-04 21:41:40,741 ProxyManager.py[line:65] ERROR ProxyFetch - freeProxy14: error
2020-04-04 21:41:40,742 ProxyManager.py[line:66] ERROR Error 111 connecting to 127.0.0.1:6379. Connection refused.
2020-04-04 21:41:40,742 ProxyScheduler.py[line:35] INFO finish fetch proxy
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/redis/connection.py", line 552, in connect
    sock = self._connect()
  File "/usr/local/lib/python3.6/site-packages/redis/connection.py", line 609, in _connect
    raise err
  File "/usr/local/lib/python3.6/site-packages/redis/connection.py", line 597, in _connect
    sock.connect(socket_address)
ConnectionRefusedError: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "proxyPool.py", line 52, in <module>
    cli()
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.6/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "proxyPool.py", line 38, in schedule
    runScheduler()
  File "../Schedule/ProxyScheduler.py", line 48, in runScheduler
    rawProxyScheduler()
  File "../Schedule/ProxyScheduler.py", line 40, in rawProxyScheduler
    doRawProxyCheck()
  File "../Schedule/RawProxyCheck.py", line 65, in doRawProxyCheck
    for _proxy in pm.db.getAll():
  File "../DB/DbClient.py", line 102, in getAll
    return self.client.getAll()
  File "/usr/src/app/DB/RedisClient.py", line 107, in getAll
    item_dict = self.__conn.hgetall(self.name)
  File "/usr/local/lib/python3.6/site-packages/redis/client.py", line 2979, in hgetall
    return self.execute_command('HGETALL', name)
  File "/usr/local/lib/python3.6/site-packages/redis/client.py", line 875, in execute_command
    conn = self.connection or pool.get_connection(command_name, **options)
  File "/usr/local/lib/python3.6/site-packages/redis/connection.py", line 1347, in get_connection
    connection.connect()
  File "/usr/local/lib/python3.6/site-packages/redis/connection.py", line 557, in connect
    raise ConnectionError(self._error_message(e))
redis.exceptions.ConnectionError: Error 111 connecting to 127.0.0.1:6379. Connection refused.

iyzyi avatar Apr 04 '20 13:04 iyzyi

如果要在容器内连宿主机上的服务,宿主机的127.0.0.1并不是容器内的127.0.0.1。 要实现这种有两种方式,

一是使用host网络模式

docker run --network host --env db_type=REDIS --env db_host=127.0.0.1 --env db_port=6379  -p 5010:5010 jhao104/proxy_pool

二是使用host.docker.internal

docker run  --env db_type=REDIS --env db_host=host.docker.internal --env db_port=6379  -p 5010:5010 jhao104/proxy_pool

参考 https://segmentfault.com/q/1010000010440290

jhao104 avatar Apr 08 '20 02:04 jhao104

我也是一样的错误,群辉Docker

xmsuqi avatar Apr 22 '21 20:04 xmsuqi

docker run --net=host --env DB_CONN=redis://:@host.docker.internal:6379/0 -p 5010:5010 jhao104/proxy_pool:latest

evanzme avatar Nov 05 '23 13:11 evanzme