跳至主要内容

利用腾讯云的免费镜像服务,实现docker镜像的自动构建与加速下载

 

一、简介

由于众所周知的原因,dockerhub官方仓库上传、拉取镜像非常不稳定,甚至出现无法连接的情况。为此,出现了很多免费的加速方案,但总体使用起来都不够稳定,如果需要稳定的开发、部署镜像,还得自建加速网络或者自建镜像仓库,非常麻烦。有没有更加稳定可靠低成本的方案?当然有,那就是抱大腿,使用腾讯云等大厂提供的镜像服务托管自己的镜像。下面就如何使用腾讯云镜像服务,以及如何关联自己的代码仓库,实现自动构建上传,做简单的介绍。


二、开通服务

  1. 登录腾讯云并访问页面:https://console.cloud.tencent.com/tcr/repository,点击开通容器镜像服务即可

  2. 开通服务后,会跳转到角色授权页面,需要你同意服务授权

  3. 角色授权后,进入:https://console.cloud.tencent.com/tcr/?rid=1,初始化镜像仓库的用户名、密码


三、创建镜像

  1. 如果还没创建命名空间,需要先创建一个,因为每个镜像需要归属在一个命名空间下

  2. 创建镜像仓库,如果是私密镜像,类型必须选择私有,公有就是不需要授权登录就能拉取

    创建完之后就能得到镜像地址了

  3. 如果不需要自动构建,可以直接手动推送镜像到这个仓库,如下

    # 登录腾讯云镜像仓库ccr.ccs.tencentyun.com
    docker login ccr.ccs.tencentyun.com -u 设置的用户名 -p 设置的密码 
    # 给本地镜像创建一个新的标签
    #比如把nginx:latest镜像标成我的镜像ccr.ccs.tencentyun.com/dreamplay/php_fpm_base:latest
    docker tag nginx:latest ccr.ccs.tencentyun.com/dreamplay/php_fpm_base:latest
    # 推送镜像
    docker push ccr.ccs.tencentyun.com/dreamplay/php_fpm_base:latest


四、自动构建

  1. 如果没开通,同样一路点击开通、开通、开通

  2. 开通、授权完之后,就可以设置镜像构建规则了

  3. 可连接很多代码仓库,我这里选择授权连接github代码仓库,然后就可以选择指定的代码仓库、代码分支、镜像标签进行构建了

    • 我这里选择的代码开源地址:https://github.com/luler/php_fpm_base

    • 代码里面的构建文件Dockerfile,这里的目的是构建一个php开发环境镜像

      # 使用官方 PHP-FPM 镜像作为基础镜像
      FROM php:7.3-fpm-alpine
      
      # 安装 Nginx 和 Supervisor
      RUN apk add --no-cache autoconf g++ make nginx supervisor
      
      # 安装常用 PHP 扩展 (根据需要添加)
      RUN docker-php-ext-install pdo_mysql mysqli opcache
      
      # 通过 PECL 安装
      RUN pecl install redis-5.3.7 && docker-php-ext-enable redis
      
      # 使用 Supervisor 启动服务
      CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
  4. 如果你不需要修改原镜像,只需要引入到自己的腾讯云镜像仓库,作为基础镜像使用,你的Dockerfile可以修改成你想引入的镜像,如:

    # 下面可以修改成任意Dockerhub存在的镜像和标签
    FROM nginx:latest
  5. 新增构建规则之后,可以手动点击立即构建,也可以等待代码变更触发自动构建

  6. 构建成功后,就能看到镜像版本,拉取使用了

    • 构建需要一定的时间,执行状态可能是成功、失败,失败的话可以查看“执行详情”查找问题

    • 构建成功后,就会出现对应的镜像版本


五、使用镜像

参考上面我的构建代码里面的docker-compose.yml配置内容示例:

services:
  php_nginx:
    #主要是这里,指定上面构建出来的镜像                
    image: ccr.ccs.tencentyun.com/dreamplay/php_fpm_base:latest

    #这里省略其他配置...

注意,如果你的镜像类型设置为私有的,需要提前登录腾讯云的镜像仓库:docker login ccr.ccs.tencentyun.com


六、总结

  1. 使用限制
    • 腾讯云提供个人版免费镜像仓库服务存在并发访问限制,限制10客户端同时上传/下载,不过基本可以满足大多数开发需求
  2. 下载速度
    • 国内拉取腾讯云的镜像还是快且稳的,基本能跑满带宽下载,特别是你使用的是腾讯云自家的服务器时,拉取就相当于局域网下载了
  3. 自动构建
    • 腾讯云的镜像服务的自动构建服务接入非常方便,支持多种代码源
  4. 其他替代
    • 除了腾讯云之外,阿里云也同样提供了个人版免费镜像仓库服务,使用方式类似,这里不做赘述





评论

此博客中的热门博文

电脑里的AI帮手:Open Interpreter智能助手食用指南

一、简介 interpreter是一个使用python开发的命令行工具,可以让你在终端中使用类似AI对话的方式,只需简单输入指令要求,即可自动编写程序、执行代码,实现各种自动化操作 interpreter有自动检测输出结果、自动错误修复功能,保证指令执行的可靠运行 具有权限控制与执行确认机制,确保敏感命令不会立即执行(默认开启,但可以关闭) 支持接入各种模型,操作简单,一行命令即可唤起 二、安装 确保本地安装有python、pip等环境 一键安装 pip install open -interpreter 安装完成,查看命令是否可用,运行interpreter -h输出如下: $ interpreter -h 用法: interpreter [选项] Open Interpreter(开放解释器) 选项: -h, --help 显示帮助信息并退出 -p PROFILE, --profile PROFILE 配置文件名。运行` --profiles`可打开配置目录 -ci CUSTOM_INSTRUCTIONS, --custom_instructions CUSTOM_INSTRUCTIONS 语言模型的自定义指令。会追加到系统消息中 -sm SYSTEM_MESSAGE, --system_message SYSTEM_MESSAGE (不建议修改)语言模型的基础提示词 -y, --auto_run 自动运行生成的代码 -nhl, --no_highlight_active_line 关闭代码块中当前行的语法高亮 -v, --verbose 打印详细日志 -m MODEL, --model MODEL 使用的语言模型 -t TEMPERATURE, --temperature TEMPERATURE 语言模型的可选温度参数 -lsv, --llm_supports_v...

跨浏览器书签同步方案:WebDAV + Floccus插件实操指南

  一、简介 Floccus 是一个允许用户在不同浏览器和设备之间私密同步书签的扩展,开源地址: https://github.com/floccusaddon/floccus WebDAV是一种基于HTTP的协议,支持远程文件管理,支持basic授权,部署简单,可以docker私有化部署,也可以选择支持webdav的云盘服务,如坚果云,本文选用私有部署的方式 Floccus支持很多书签数据私有化存储方式,包括webdav,配置接入简单 二、安装 1.安装webdav服务 我这里选择webdav这种方式,只要拥有webdav功能的服务就可以,比如: 坚果云 : https://www.jianguoyun.com/ ,提供webdav服务,路径:账户信息=>安全选项=》添加应用,就可以使用坚果云相关webdav配置来设置floccus了 alist :开源项目alist也提供webdav服务,参考官方说明: https://alist-doc.nn.ci/docs/webdav/。因为alist支持挂载各种云盘 ,所以这种方式可以同步到更多云盘。alist私有部署可参考文章: https://blog.luler.top/d/21 其他支持webdav的服务,如下可以使用docker一键部署wendav : a. 提前安装好docker、docker-compose环境(这里不做讲解) b. 新建docker-compose.yml文件,配置内容如下: 复制 version: '3' services: webdav: image: bytemark/webdav restart: always ports: - "8080:80" environment: AUTH_TYPE: Basic USERNAME: admin #这里basic认证账号 PASSWORD: admin123 #这里basic认证密码 volumes: - ./dav:/var/lib/dav #数据持久化 c. 运行启动 复制 docker-compose up -d d. 访问: http:/...

认识python全栈框架reflex:快速打造工具类网站、模型调用web应用

  一、简介 纯Python编写的,高性能、可自定义的 Web 应用开发框架 网页开发内置组件生态完整,灵活使用、快速接入、快速部署 支持路由页面,可以开发复杂系统、企业级系统,这方面优于gradio、streamlit等全栈框架 开源地址: https://github.com/reflex-dev/reflex ,官网地址: https://reflex.dev 二、基础安装使用 提前准备好Python 3.10+软件环境(不做赘述) 使用pip安装reflex 复制 pip install reflex 初始化项目代码 复制 mkdir reflex_test cd reflex_test reflex init 直接运行 复制 reflex run 运行过程 访问默认页面: http://localhost:3000/ 修改默认代码,页面可以自动重载更新页面 可以参考官方组件库、模板库,直接复制相关代码黏贴即可直接使用 参考官方组件使用与说明: https://reflex.dev/docs/library/ 三、快速接入大模型文生图简单示例 参考代码: https://github.com/luler/reflex_ai_fast 实现功能:旨在通过便捷的操作页面,迅速接入和体验大模型生图功能 安装配置使用: 拉取代码 复制 git clone https://github.com/luler/reflex_ai_fast cd reflex_ai_fast 新增编辑.env,输入文生图大模型配置,内容如下:(注意:需要支持openai兼容的文生图接口https://platform.openai.com/docs/guides/text-generation,如果不支持,需要自行调整代码,也很简单) 复制 OPENAI_BASE_URL =https://xxx/v1 OPENAI_API_KEY =sk-xxx 打包并导出前端代码 复制 API_URL =http:// 127.0 . 0.1 : 8080 reflex export --frontend- on ly docker-compose一键运行(提前部署好docker、docker-compose环境) 复制 docker-compose up -d 访问页面: http...