2026/4/17 1:28:31
网站建设
项目流程
网站解决访问量超载,常州建设网站,如何对新开网站做收录,网站建设氵金手指下拉本文将详细且全面的说明如何搭建和使用docker的轻量级自建私有镜像仓库-registry#xff08;含web管理页面、用户验证#xff09; 以ubuntu/debian系统为例 docker-compose
services:registry:image: registry:latestcontainer_name: registryrestart: unless-stoppedvolume…本文将详细且全面的说明如何搭建和使用docker的轻量级自建私有镜像仓库-registry含web管理页面、用户验证以ubuntu/debian系统为例docker-composeservices:registry:image:registry:latestcontainer_name:registryrestart:unless-stoppedvolumes:# 同步宿主机时间-/etc/timezone:/etc/timezone:ro-/etc/localtime:/etc/localtime:ro# 仓库数据-./_data_:/var/lib/registryenvironment:# 启用htpasswd身份验证-REGISTRY_AUTHhtpasswd# 认证文件路径-REGISTRY_AUTH_HTPASSWD_PATH/var/lib/registry/pwd# 开启认证这一项必填-REGISTRY_AUTH_HTPASSWD_REALMRegistry Realmports:-5210:5000# 网页registry-web:image:klausmeyer/docker-registry-browser:1.8.5container_name:registry-webenvironment:-DOCKER_REGISTRY_URLhttp://registry:5000/v2# 秘钥自行修改-SECRET_KEY_BASE3qSG8b10fuL0# 按空间名折叠-ENABLE_COLLAPSE_NAMESPACEStrue# 启用删除镜像-ENABLE_DELETE_IMAGEStruerestart:unless-stoppedports:-5211:8080networks:registry_net:用户账号密码通过htpasswd来设置registry的访问账号# 安装工具包aptinstallapache2-utils# 包含htpasswd工具# 第一次创建# pwd 是存储账号密码的文件sudohtpasswd -c ./pwd 用户名#输入后会提示输入密码# 新增用户或修改密码sudohtpasswd ./pwd 用户名#输入后会提示输入密码# 删除用户sudohtpasswd -D ./pwd 用户名# 验证密码sudohtpasswd -vpwd用户名注意register中必须使用-B进行强加密# 使用-B进行加密registy必须用这个htpasswd -Bcpwdadmin登录退出登录登录示例docker login 127.0.0.1:3000然后输入账号密码无验证可不输入登录验证信息存储在用户/.docker/config.json在文件可以查看有哪些登录了的账号登出示例docker logout 127.0.0.1:3000推送拉取推送示例推送的第一步是给镜像添加标签docker tag hello-world:latest或者镜像id 127.0.0.1:3000/hello-world:v1.0将镜像标签打包为对应的域时就可以开始推送了docker push 127.0.0.1:3000/hello-world:v1.0拉取示例docker pull 127.0.0.1:3000/hello-world:v1.0有关https的问题一般来说是不推荐使用http协议来传输的建议通过nginx代理成https服务这很容易实现。如果遇到域名未备案无法用域名访问而ip又没有https证书的话推荐使用自签证书。这样就能无需在docker中作修改直接使用了。若仍想要使用http需做以下修改允许访问http网站http镜像源需要在docker中进行配置/etc/docker/daemon.json配置完成后需重启docker服务。systemctrl restart docker{insecure-registries:[127.0.0.1:3000]}方案2直接打包镜像对于需经常性变更的镜像或多人频繁使用的话搭建registry镜像还是比较推荐的。较大团队或者追求更丰富功能的话更推荐使用harbor但如果只是个人偶尔使用或许直接打包成镜像会来的更加方便。镜像打包docker save -o xx.tar 镜像加载镜像docker load -i xx.tar这里写了一个python的镜像批量打包脚本可自行参考默认使用7z进行打包在网盘文件中文章使用的镜像文件也在里面其它镜像源推荐渡渡鸟https://docker.aityp.com/速度很快的镜像源但需注意镜像的版本往往不是最新的需要自己甄别轩辕镜像https://docker.xuanyuan.me/有免费和收费两个版本使用起来都还可以其它镜像一致性确保镜像一致的方法有两种Image ID和Digest我的理解是Image ID是宿主机用来使用的唯一id镜像被拉取或导入都有。Digest是镜像仓库用来使用的唯一id只有拉取和推送后才有。而对于一些多架构的镜像来说上面两个值均有可能发生变化但同架构系统之间会是一样的。因此对于docker的一致性更建议的是通过创建时间来确认尤其是同样都是latest哪个版本更新。另外从数据的安全性来说也是更推荐直接从hub.docker或官方中去获取。链接https://pan.quark.cn/s/74c7863110a7提取码15hN推荐文章 令人头疼的 docker 代理问题我整理了解决方法和验证方案 - 知乎