• 请不要在回答技术问题时复制粘贴 AI 生成的内容
lucasj
V2EX  ›  程序员

请问大佬, MacOS 下如何设置 docker 使用本地代理?

  •  
  •   lucasj · Jul 11, 2024 · 6598 views
    This topic created in 847 days ago, the information mentioned may be changed or developed.

    尝试了很多方法,依然无法拉取镜像

    $ docker pull busybox
    
    Using default tag: latest
    latest: Pulling from library/busybox
    213a27df5921: Retrying in 1 second
    error pulling image configuration: download failed after attempts=6: net/http: TLS handshake timeout
    

    方法一:设置终端代理

    export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890
    

    方法二:设置 daemon.json

    按照官方文档 Configure the daemon to use a proxy 修改 ~/.docker/daemon.json。

    以上方法都不生效。

    22 replies  •  2024-07-23 21:28:38 +08:00
    user100saysth
    user100saysth
    Jul 11, 2024❤️1
    1
    前几天弄过 centos7 的,供参考
    docker 配置代理------
    sudo mkdir -p /etc/systemd/system/docker.service.d
    984 sudo touch /etc/systemd/system/docker.service.d/proxy.conf
    985 vi /etc/systemd/system/docker.service.d/proxy.conf
    ```
    [Service]
    Environment="HTTP_PROXY=http://localhost:7890/"
    Environment="HTTPS_PROXY=http://localhost:7890/"
    Environment="NO_PROXY=localhost,127.0.0.1,.example.com"
    ```

    sudo systemctl daemon-reload
    sudo systemctl restart docker
    xR13zp0h67njQr2S
    xR13zp0h67njQr2S
    Jul 11, 2024
    3
    docker desktop -》 setting -》 resources -》 proxies
    xR13zp0h67njQr2S
    xR13zp0h67njQr2S
    Jul 11, 2024
    4
    zhuisui
    zhuisui
    Jul 11, 2024
    5
    修改 daemon.json 法肯定是有用的
    xubeiyan
    xubeiyan
    Jul 11, 2024
    6
    用`docker info` 看看是否设置中有
    ```
    HTTP Proxy: socks5://127.0.0.1:7890
    HTTPS Proxy: socks5://127.0.0.1:7890
    ```
    类似的项目,还有就是改了配置需要使用`systemctl restart docker`重新载入 docker
    fugu37
    fugu37
    Jul 11, 2024❤️1
    7
    因为 docker 只支持 linux ,macos 和 windows 都要用虚拟机兼容,配置方法自然和正常的 docker 不一样
    Volekingsg
    Volekingsg
    Jul 11, 2024❤️2
    8
    macOS 下面一个比较简单的方式,开个增强模式(即虚拟网关),Surge 和 Clash 一般都支持
    wnpllrzodiac
    wnpllrzodiac
    Jul 11, 2024
    9
    cf 大法岂不美哉
    wu67
    wu67
    Jul 11, 2024
    10
    最近的版本好像有 bug. 我之前一直是在 docker 设置里面设置 127+端口的. 今天更新发现这个设置失效了.
    然后把 docker 设置面板里面代理关掉, 让他自己走系统代理就好了
    beginor
    beginor
    Jul 11, 2024 via Android
    11
    Docker 在 Mac 上是虚拟机, 所以 Mac 上使用 127.0.0.1 作为代理地址是肯定不行的, 必须设置成 Mac 本机的内网 IP 地址才能使用。

    或者使用 Proxifier 来设置代理规则也行。
    Yuesh1
    Yuesh1
    Jul 11, 2024❤️4
    13
    把 127.0.0.1 改成 host.docker.internal


    127.0.0.1 访问的是 mac 的 docker 起的一个虚拟机
    Yuesh1
    Yuesh1
    Jul 11, 2024
    14
    @Yuesh1 我的意思是在 ~/.docker/daemon.json 里配置的
    tr1v1z
    tr1v1z
    Jul 11, 2024 via Android
    15
    https://docs.orbstack.dev/settings#proxy

    你用的 orbstack 吗?
    另外为啥不用 tun 模式
    zsh2517
    zsh2517
    Jul 11, 2024
    16
    @78786381 #3 补一张图

    ![]( https://imgur.com/SM5bmcT)
    leokun
    leokun
    Jul 11, 2024❤️1
    17
    tun 模式可以
    luodan
    luodan
    Jul 12, 2024❤️1
    18
    楼上说的增强模式应该是最方便的。随时开启,随时关闭。
    skuuhui
    skuuhui
    Jul 12, 2024
    19
    “按照官方文档 Configure the daemon to use a proxy 修改 ~/.docker/daemon.json”我是生效的,如果不行,那就是镜像源有问题。
    哦,你拉取的时候得 docker pull <源域名>/busybox
    zbatman
    zbatman
    Jul 12, 2024 via Android
    20
    只是拉镜像的话,用 cf workers 或者用 cf 套 nginx 自己搭建一个就行吧,cf 在国内应该还是可以访问的
    svyrblg
    svyrblg
    Jul 23, 2024
    21
    1 、通过界面设置
    docker desktop -》 setting -》 resources -》 proxies
    2 、通过配置文件设置
    "proxies": {
    "default": {
    "httpProxy": "http://127.0.0.1:20171",
    "httpsProxy": "http://127.0.0.1:20171"
    }
    },
    注意:只能使用 http 协议,socks5 不能使用。
    svyrblg
    svyrblg
    Jul 23, 2024
    22
    已经经过测试
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1765 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 74ms · UTC 17:00 · PVG 01:00 · LAX 09:00 · JFK 12:00
    ♥ Do have faith in what you're doing.