如何使docker容器连接到代理?

如何使docker容器连接到代理?,docker,proxy,Docker,Proxy,我在Ubuntu 16.04上运行docker 19.03。最近正在构建V2ray客户端。 现在我在如何使容器连接到该代理上遇到了问题。我读过一些关于StackOverflow的问题,比如or。我还阅读了有关的官方文件。这些对我帮助很大,但还不够。 现在我的问题是: version: '3.5' services: openethereum: image: openethereum/openethereum container_name: openethereum v

我在Ubuntu 16.04上运行docker 19.03。最近正在构建V2ray客户端。 现在我在如何使容器连接到该代理上遇到了问题。我读过一些关于StackOverflow的问题,比如or。我还阅读了有关的官方文件。这些对我帮助很大,但还不够。 现在我的问题是:

version: '3.5'
services:
  openethereum:
    image: openethereum/openethereum
    container_name: openethereum
    volumes:
      - /mnt/pgdata/ETH:/home/openethereum/.local/share/io.parity.ethereum
    command: --tracing=off --warp-barrier=12088645
    environment:
      HTTP_PROXY: http://172.21.0.1:2080/
      HTTPS_PROXY: https://172.21.0.1:2080/
  • 上面提到的用于配置Docker客户端的文档。比如修改
    ~/.docker/config.json
    文件。这是一种一劳永逸的方法。但它会影响在我修改文件并重新启动docker后创建的容器。我现在正在运行一些其他容器,我只希望这个容器连接到代理,因为代理不稳定,我不希望代理影响其他容器的工作。所以这个方案不能使用
  • 这些文档还提到,我们可以设置环境变量,使容器连接到代理。例如,当使用命令
    docker run
    时,我们可以添加
    -env HTTP\u PROXY=”http://localhost:1080/“
    强制容器连接到代理。但是在命令
    docker run
    Dockerfile
    上只有两个示例。我使用了
    docker compose
    来构建我的容器。我已经在docker compose文件中添加了
    environment
    项,但它不起作用。所以我不知道在使用
    docker compose
    时如何做到这一点
  • 我的
    docker compose.yml
    文件如下:

    version: '3.5'
    services:
      openethereum:
        image: openethereum/openethereum
        container_name: openethereum
        volumes:
          - /mnt/pgdata/ETH:/home/openethereum/.local/share/io.parity.ethereum
        command: --tracing=off --warp-barrier=12088645
        environment:
          HTTP_PROXY: http://172.21.0.1:2080/
          HTTPS_PROXY: https://172.21.0.1:2080/
    
    我使用
    172.21.0.1
    作为容器的ip地址来连接到代理,因为我知道此容器的ip地址是
    172.21.0.2
    ,并且我的代理正在侦听所有ip地址。我不确定这是否是正确的用法,如果有任何问题,谢谢你指出

    我在计算机上安装了
    proxychains
    ,并对其进行了配置。当我运行命令www.google.com时,我得到了很多HTML文本。但在我 通过运行command
    docker exec-it openem sh
    进入我的容器,我再次运行command
    curl www.google.com
    。之后我等了很长时间,最后它告诉我地址无法解析


    非常感谢您阅读我的问题,如果您有任何解决方案,并感谢您分享您的解决方案。

    我已将环境项添加到docker compose文件中,但它不起作用
    =>请定义“不起作用”。提供docker compose文件和无法从容器内部使用代理的证据,以及调试该问题并尝试解决该问题所采取的步骤。同时,这个问题也是如此。在您收集了必要的信息并创建了一个