V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
vdrapb
V2EX  ›  Docker

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

  •  
  •   vdrapb · 34 天前 · 3901 次点击
    这是一个创建于 34 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    现在国内用的就是这个,大部分镜像都有
    Donaldo
        7
    Donaldo  
       34 天前   ❤️ 5
    ```
    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
        8
    sunziren  
       34 天前
    旁路网关
    xiayun
        9
    xiayun  
       34 天前
    自己电脑上 我好像也都是开着梯子,其它云上的 有云代理 参照#7 改一下就行
    dcsuibian
        10
    dcsuibian  
       34 天前   ❤️ 3
    学习阶段我的建议是路由器装翻墙插件做透明代理,都学会了再去折腾网络
    镜像站这东西不稳定,治标不治本,即使今天不封明天也有可能封。梯子稳定好用太多,而且应用面广泛,包括 yum 、apt 都可以走代理,但缺点是路由器的梯子会影响家里的网络,不用的时候建议关掉。

    你学 docker 估计是装个 Linux 虚拟机的,不搞透明代理的话,你要注意宿主机流量走了梯子虚拟机大概率没走,虚拟机配置代理的话也不能单纯 export http 环境变量,另外 docker 本身( docker pull )走代理和 docker 内的容器走不走代理也是有区别的。而且有些镜像也不一定是在 docker hub 上的
    dcsuibian
        11
    dcsuibian  
       34 天前   ❤️ 2
    如果你已经学完了 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
        12
    iloveayu  
       34 天前
    想爽玩你就研究透明代理,一劳永逸
    bigshawn
        13
    bigshawn  
       34 天前
    我是用的赛博菩萨家的 worker 自己搭一个
    使用的项目地址 https://github.com/cmliu/CF-Workers-docker.io
    weenhall5
        14
    weenhall5  
       34 天前
    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
        15
    EastLord  
       34 天前
    使用 Github Action 将国外的 Docker 镜像转存到阿里云私有仓库
    https://github.com/tech-shrimp/docker_image_pusher
    fanersai
        16
    fanersai  
       34 天前
    一直用的 1panel 的加速
    cwxiaos
        17
    cwxiaos  
       34 天前 via iPhone
    软路由或者 tun,其它方案都不咋地
    ala2008
        18
    ala2008  
       34 天前
    没办法,使用第三方镜像吧
    duanxianze
        19
    duanxianze  
       34 天前
    挂梯子有啥的,早该习惯了
    nofkbug
        20
    nofkbug  
       34 天前
    @weenhall5 你这样没用,正常的 url 请求可以,但是 pull image 会提示不支持 “Connect” method
    xpn282
        21
    xpn282  
       34 天前
    这就是主路由开代理或旁网关开代理的重要性

    家里总要配一个代理环境
    concernedz
        22
    concernedz  
       34 天前
    本地的话,vpn ,直接 clash 的 tun 模式了;
    如果是建站的话,就找镜像站吧,1panel
    julyclyde
        23
    julyclyde  
       34 天前
    @weenhall5 在 service 里用环境变量搞,稍微有点 imply
    建议还是直接写到 daemon.json 里
    zhangkai1024
        24
    zhangkai1024  
       34 天前
    @Donaldo docker28 这个方式已经不起作用了吧
    zhangkai1024
        25
    zhangkai1024  
       34 天前
    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
        26
    Donaldo  
       34 天前
    @zhangkai1024 #22 有可能哈,我看了一眼我的版本我是 27.4.1 ,要是不行了,我就不更新了😂
    Donaldo
        27
    Donaldo  
       34 天前
    @zhangkai1024 #22 跟进一下,我在 v28 的 release notes 和文档里都没见到 registry-mirrors 被弃用的声明。
    kirara2024
        28
    kirara2024  
       34 天前
    http-proxy 方式仅限 pull/push 若你要容器内部网络完全正常 得借助其他方式
    as9567585
        29
    as9567585  
       33 天前
    @dcsuibian #11 好办法,简单,实用
    jiejianshiwa
        30
    jiejianshiwa  
       32 天前
    Openwrt passwll 透明代理,我用了三年了,稳如狗,感受不到墙的存在
    whitewash
        31
    whitewash  
       23 天前
    @zhangkai1024 要重启一下,
    sudo systemctl daemon-reload
    sudo systemctl restart docker

    有帮助的话,记得用铜板感谢我
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   968 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:54 · PVG 06:54 · LAX 15:54 · JFK 18:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.