Docker - 11. 本地镜像发布到私有库

本文介绍了为何需要私有Docker镜像仓库,详细讲解了如何在本地搭建Registry并发布镜像到私有库,包括创建镜像、修改tag、配置支持http、推送及拉取镜像的步骤,确保公司内部镜像的安全管理和使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 为什么要有私有库?

如果涉及到公司机密文件,使用DockerHub、阿里云这样的公共镜像仓库就不合适,所以需要创建一个本地私人仓库提供给团队使用,基于公司内部项目构建镜像。而 Docker Registry是官方提供的工具,可以用于构建私有镜像仓库。

2. 本地镜像发布到私有库

1. 下载镜像 Docker Registry,之后查看是否安装成功

docker pull registry    # 下载镜像
docker images    # 查看已经安装的镜像

 2. 运行私有库 Registry,相当于本地有个私有Docker Hub。默认情况下仓库被创建在容器的/var/lib/registry目录下,建议用容器卷映射,方便于宿主机联调

docker run -d -p 5000:5000 - v /wmq/myregistry/:/tmp/registry --privileged=true registry

### 如何在 `docker-compose.yml` 中指定镜像仓库或修改镜像源 在定义服务时,可以通过两种主要方式来指定镜像:一种是指定现有的 Docker 镜像名称;另一种则是通过提供构建上下文来自定义镜像。 当希望直接使用已存在的远程镜像而非本地构建时,则需采用 image 关键字并跟随具体的镜像名以及可选的标签。这允许从任何兼容的注册表拉取官方或其他第三方提供的预建映像[^2]。 对于想要更改默认公共库(如 Docker Hub),转而指向私有企业级解决方案或是地理位置更近从而加速下载速度的情况而言,在 `image` 字段内输入完整的路径即可实现这一目的。例如: ```yaml version: '3' services: webapp: image: my.private.registry.com/my-app:latest ``` 上述配置表明将尝试连接至名为 `my.private.registry.com` 的自托管存储位置获取标记为 latest 版本的应用程序包[^1]。 如果要基于特定版本控制策略部署不同环境下的应用实例,可以在 URL 结构里加入更多细节以精确匹配所需资源。比如针对测试版和生产版分别设置独立地址: ```yaml version: '3' services: test_webapp: image: my.private.registry.com/testing/my-app:test-version prod_webapp: image: secure.prod.registry.org/production/my-app:prod-release-0_1_0 ``` 值得注意的是,为了确保安全性和性能优化,建议总是尽可能具体化所使用的镜像版本号而不是依赖于浮动标签(floating tag)。这样做不仅有助于防止意外更新带来的不稳定性问题,同时也便于追踪变更历史记录以便日后审计需求[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值