vdrapb
V2EX  ›  Docker

中国大陆现在要怎样才能正常使用 docker

  •  
  •   vdrapb · Mar 10, 2025 · 7627 views
    This topic created in 605 days ago, the information mentioned may be changed or developed.

    最近想学一下 Docker 的使用,装上去后发现什么都用不了,配置了国内镜像也一样,难道只能一直开着梯子才能正常用吗

    31 replies  •  2025-03-21 17:35:49 +08:00
    shen13176101
    shen13176101
    Mar 10, 2025❤️1
    1
    开 vpn 无感安装下载
    chloerei
    chloerei
    Mar 10, 2025❤️1
    2
    一直开着梯子。
    dji38838c
    dji38838c
    Mar 10, 2025
    3
    这有什么好学的。
    pingdog
    pingdog
    Mar 10, 2025
    4
    国内高校/企业运营的镜像不公开 Docker Hub 的内容了,要稳定自己搭建
    ration
    ration
    Mar 10, 2025❤️1
    5
    用 cloudflare 弄个 Worker 自建个
    SunnyIng
    SunnyIng
    Mar 10, 2025❤️1
    6
    https://github.com/DaoCloud/public-image-mirror

    现在国内用的就是这个,大部分镜像都有
    Donaldo
    Donaldo
    Mar 10, 2025❤️6
    7
    ```
    cat /etc/docker/daemon.json
    {
    "registry-mirrors": [
    "https://docker.hpcloud.cloud",
    "https://docker.m.daocloud.io",
    "https://docker.unsee.tech",
    "https://docker.1panel.live",
    "http://mirrors.ustc.edu.cn",
    "https://docker.chenby.cn",
    "http://mirror.azure.cn",
    "https://dockerpull.org",
    "https://dockerhub.icu",
    "https://hub.rat.dev"
    ]
    }
    ```
    阿里云这样配置可以高速拉镜像
    sunziren
    sunziren
    Mar 10, 2025
    8
    旁路网关
    deloved
    deloved
    Mar 10, 2025
    9
    自己电脑上 我好像也都是开着梯子,其它云上的 有云代理 参照#7 改一下就行
    dcsuibian
    dcsuibian
    Mar 10, 2025❤️3
    10
    学习阶段我的建议是路由器装翻墙插件做透明代理,都学会了再去折腾网络
    镜像站这东西不稳定,治标不治本,即使今天不封明天也有可能封。梯子稳定好用太多,而且应用面广泛,包括 yum 、apt 都可以走代理,但缺点是路由器的梯子会影响家里的网络,不用的时候建议关掉。

    你学 docker 估计是装个 Linux 虚拟机的,不搞透明代理的话,你要注意宿主机流量走了梯子虚拟机大概率没走,虚拟机配置代理的话也不能单纯 export http 环境变量,另外 docker 本身( docker pull )走代理和 docker 内的容器走不走代理也是有区别的。而且有些镜像也不一定是在 docker hub 上的
    dcsuibian
    dcsuibian
    Mar 10, 2025❤️2
    11
    如果你已经学完了 docker ,那可以开始折腾网络了
    主要解决的问题就是服务器怎么走代理

    docker pull 走代理可以看这篇:
    https://www.lfhacks.com/tech/pull-docker-images-behind-proxy/

    我目前的方式是配置了/etc/systemd/system/docker.service.d/http-proxy.conf ,然后用
    ssh -R 7890:localhost:7890 -N remote-host
    把 clash 代理转发到云服务器上(因为服务器装 clash 不是很方便),pull 完了就断掉好了

    下一阶段就是多台服务器,可以考虑 Sonatype Nexus 自建 Docker 仓库
    iloveayu
    iloveayu
    Mar 10, 2025
    12
    想爽玩你就研究透明代理,一劳永逸
    Mar5
    Mar5
    Mar 10, 2025
    13
    我是用的赛博菩萨家的 worker 自己搭一个
    使用的项目地址 https://github.com/cmliu/CF-Workers-docker.io
    weenhall5
    weenhall5
    Mar 10, 2025
    14
    vim /etc/systemd/system/docker.service.d/proxy.conf

    Environment="HTTP_PROXY=http://192.168.x.x:port"
    Environment="HTTPS_PROXY=http://192.168.x.x:port"
    Environment="NO_PROXY=localhost,127.0.0.1"
    EastLord
    EastLord
    Mar 10, 2025
    15
    使用 Github Action 将国外的 Docker 镜像转存到阿里云私有仓库
    https://github.com/tech-shrimp/docker_image_pusher
    momo65535
    momo65535
    Mar 10, 2025
    16
    一直用的 1panel 的加速
    cwxiaos
    cwxiaos
    Mar 10, 2025 via iPhone
    17
    软路由或者 tun,其它方案都不咋地
    ala2008
    ala2008
    Mar 10, 2025
    18
    没办法,使用第三方镜像吧
    duanxianze
    duanxianze
    Mar 10, 2025
    19
    挂梯子有啥的,早该习惯了
    nofkbug
    nofkbug
    Mar 10, 2025
    20
    @weenhall5 你这样没用,正常的 url 请求可以,但是 pull image 会提示不支持 “Connect” method
    xpn282
    xpn282
    Mar 10, 2025
    21
    这就是主路由开代理或旁网关开代理的重要性

    家里总要配一个代理环境
    concernedz
    concernedz
    Mar 10, 2025
    22
    本地的话,vpn ,直接 clash 的 tun 模式了;
    如果是建站的话,就找镜像站吧,1panel
    julyclyde
    julyclyde
    Mar 10, 2025
    23
    @weenhall5 在 service 里用环境变量搞,稍微有点 imply
    建议还是直接写到 daemon.json 里
    hanzhu2026
    hanzhu2026
    Mar 10, 2025
    24
    @Donaldo docker28 这个方式已经不起作用了吧
    hanzhu2026
    hanzhu2026
    Mar 10, 2025
    25
    root@myscopedhost:~# docker -v
    Docker version 28.0.1, build 068a01e


    root@myscopedhost:~# sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
    "registry-mirrors": ["https://7swqvcdk.mirror.aliyuncs.com.mirror.aliyuncs.com"]
    }
    EOF
    {
    "registry-mirrors": ["https://7swqvcdk.mirror.aliyuncs.com.mirror.aliyuncs.com"]
    }


    root@myscopedhost:~# sudo docker run hello-world
    Unable to find image 'hello-world:latest' locally
    docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

    Run 'docker run --help' for more information


    ————
    这种方式修改镜像源地址是不是在 docker version 28 不起效了?大佬们
    Donaldo
    Donaldo
    Mar 10, 2025
    26
    @zhangkai1024 #22 有可能哈,我看了一眼我的版本我是 27.4.1 ,要是不行了,我就不更新了😂
    Donaldo
    Donaldo
    Mar 10, 2025
    27
    @zhangkai1024 #22 跟进一下,我在 v28 的 release notes 和文档里都没见到 registry-mirrors 被弃用的声明。
    kirara2024
    kirara2024
    Mar 10, 2025
    28
    http-proxy 方式仅限 pull/push 若你要容器内部网络完全正常 得借助其他方式
    as9567585
    as9567585
    Mar 12, 2025
    29
    @dcsuibian #11 好办法,简单,实用
    jiejianshiwa
    jiejianshiwa
    Mar 12, 2025
    30
    Openwrt passwll 透明代理,我用了三年了,稳如狗,感受不到墙的存在
    whitewash
    whitewash
    Mar 21, 2025
    31
    @zhangkai1024 要重启一下,
    sudo systemctl daemon-reload
    sudo systemctl restart docker

    有帮助的话,记得用铜板感谢我
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1260 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 76ms · UTC 21:17 · PVG 05:17 · LAX 13:17 · JFK 16:17
    ♥ Do have faith in what you're doing.