部署私有Docker Registry
部署私有Docker Registry
安装部署一个私有的Docker Registry是引入、学习和使用Docker这门技术的必经之路之一。尤其是当Docker被所在组织接受,更多人、项目和产品开始接触和使用Docker时,存储和分发自制的Docker image便成了刚需。
Docker的开发者也一直在致力于改善Registry安装和使用的体验,通过提供官方Registry Image以及Docker Compose工具等来简化Registry的配置。不过在本文中,我们只是利用Docker以及Registry的官方Image来部署Registry,这样更便于全面了解Registry的部署配置细节。
一、环境
这里还是复用以往文章中的Docker环境:
组件名 | Ip | 版本 |
|
| docker1.13.1 |
|
| Docker version 19.03.11, build 42e35e61f3 |
本次Registry使用当前最新stable版本:Registry 2.3.0。
二、registry
搭建
本以为Docker Registry的搭建是何其简单的,甚至简单到通过一行命令就可以完成的。比如我们在Registry Server上执行:
$sudo docker run -d -p 5000:5000 --restart=always --name registry registry:latest
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
22b4515859fb docker.mirrors.ustc.edu.cn/library/registry:latest "/entrypoint.sh /e..." 2 hours ago Up 2 hours 0.0.0.0:5000->5000/tcp
Registry container已经跑起来了,其启动日志可以通过:docker logs registry查看。
检出nginx 示例容器
docker pull nginx:alpine
就能下载到基于 alpine 的最新版本的 nginx 服务器镜像, 然后再输入:
docker run \
--detach \
--name nginx \
--publish 80:80 \
--restart unless-stopped \
nginx:alpine
我们在192.168.1.212
本地给nginx:alpine打一个tag,并尝试将新tag下的image push到Registry中去:
docker tag nginx:alpine 127.0.0.1:5000/nginx:v1
push到Registry中:
现在可以上传这个镜像:
docker push 127.0.0.1:5000/nginx:v1
现在来浏览 http://127.0.0.1:5000/v2/_catalog , 将会看到这样的结果:
{"repositories":["nginx"]}
表示已经有了 nginx 这个镜像, 如果要看这个镜像有什么版本, 需要输入地址 http://127.0.0.1:5000/v2/nginx/tags/list , 结果如下:
{"name":"nginx","tags":["v1"]}
三、docker 配置
如果要在其它装了 docker 的电脑上获取这个镜像, 或者下载局域网其它 registry 服务器上的镜像,新版本的docker,由于安全策略, 有两个选择:
- 配置 HTTPS 证书, 因为是内网分发, 没有必要去折腾证书。
- docker 的 /etc/docker/daemon.json 文件, 配置 insecure-registries 选项。
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors":["https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn"],
"insecure-registries":["192.168.1.212:5000"]
}
EOF
检出镜像
docker pull 192.168.1.212:5000/nginx:v1
使用镜像启动
docker run --detach --name nginx --publish 80:80 --restart unless-stopped 192.168.1.212:5000/nginx:v1
相关文章
- Docker实践:容器化部署Python应用
- docker + jenkins + flask 部署,持续化集成
- 运维基础之Docker(2)通过docker部署zookeeper nginx tomcat java redis kibana/elasticsearch/logstash mysql kafka mesos/marathon ftp git
- 【华为云技术分享】Mind Studio Docker镜像部署分享
- (二)docker的部署安装,配置,基础命令
- 【云原生之Docker实战】使用docker部署IT资产管理系统GLPI
- 【云原生之Docker实战】使用docker部署mm-wiki文档系统
- 【云原生之Docker实战】使用docker部署短链接服务YOURLS
- 【云原生之Docker实战】使用docker部署Snapdrop文件传输工具
- 【云原生之Docker实战】使用Docker部署Lsky Pro个人图床平台
- 【云原生之Docker实战】使用docker部署ubuntu系统测试环境
- 【云原生之Docker实战】使用docker部署koel家庭个人音乐服务器
- 【云原生之Docker实战】使用docker部署o2oa企业OA平台
- 【云原生之Docker实战】使用docker部署kodbox私有云
- 【云原生之Docker实战】使用docker部署nightingale运维监控平台
- 【云原生之kubernetes实战】使用docker作为运行时部署Kubernetes集群
- 云原生之使用Docker部署Rockylinux容器应用服务
- 【云原生 • Docker】docker 私有仓库的搭建、配置与镜像上传
- Docker----安装部署私有Dockerhub即Harbor
- Docker Registry部署镜像私有仓库及鉴权认证
- Linux centos7 docker部署gitlab私有服务器
- 云原生之部署Docker可视化管理工具docker.ui
- 云原生之使用docker部署ZPan个人网盘系统
- docker企业级私有仓库harbor部署配置(十三)