docker本地仓库的搭建

本文详细介绍了如何在CentOS上搭建Docker本地仓库,包括准备阶段的系统配置、关闭防火墙、添加Docker仓库源等步骤,以及部署本地仓库的具体操作,如启动Registry服务、推送和拉取镜像。

一、先说两句
为了实现这个功能,尝试了网上各种解决方案,无数次失败中,终于成功了,并不得不说,实践是检验真理的唯一标准!!!

二、docker本地仓库搭建
1.准备阶段
1.1查看你的内核

[root@cgsl ]# uname -r
我的内核是3.10.0 -229(最后完成整个部署之后成了3.10.0-327

1.2更新yum

[root@cgsl ]# yum update

1.3安装httpd(docker 本地进行push,pull是通过http协议的,要保证你的电脑有http协议)

[root@cgsl ]# yum install httpd
[root@cgsl ]# service httpd start

1.4启动之后测试一下,在浏览器里输入主机地址,看到下面的图片恭喜你启动成功。centos里查看ip地址([root@cgsl ]# ifconfig

这里写图片描述

1.5激活你的网卡

[root@cgsl ]# vi /etc/sysconfig/network-scripts/ifcfg-ens3
修改此行
ONBOOT=yes
# /etc/init.d/network restart

1.6关闭防火墙

关闭本地防火墙
[root@cgsl ]# systemctl stop firewalld.service
关闭本地selinux防火墙
[root@cgsl ]# vi /etc/sysconfig/selinux 
修改此行
SELINUX=disabled
# setenforce 0  

1.7 添加docker.repo文件

[root@cgsl ]# vi  /etc/yum.repos.d/docker.repo
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg

1.8 解决docker push http 问题(Docker从1.3.X之后默认docker registry使用的是https,所以当用docker pull命令下载远程镜像时,如果远程docker registry是非https的时候就会报错误。)

[root@cgsl ]# vi /etc/sysconfig/docker
OPTIONS='--selinux-enabled --insecure-registry 172.22.22.222:5000' 
其中--insecure-registry 192.168.2.75:5000是自己添加的。

2.部署本地仓库阶段
2.1开启docker服务

[root@cgsl ]# service docker start
[root@cgsl ]# docker images

2.2下载registry,并启动,通过-v参数将镜像文件放在指定的本机路径下

[root@cgsl ]# sudo docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry

2.3查看本地有哪些镜像

[root@cgsl ]# curl -X GET http://172.22.22.222:5000/v2/_catalog

2.4上传镜像

[root@cgsl ]# docker tag cgls/hello-world 172.22.22.222:5000/hello-world
[root@cgsl ]# docker push 172.22.22.222:5000/hello-world

2.5删除docker里的172.22.22.222:5000/hello-world镜像,本地重新获取

[root@cgsl ]# docker pull 172.22.22.222:5000/hello-world

好了今天先到这里,明天我们进行两机互传。

### 如何搭建配置Docker本地私有Registry镜像仓库 #### 下载并运行官方Registry镜像 为了建立一个基本的私有Docker Registry,可以从Docker Hub获取官方提供的`registry`镜像。这一步骤通过命令行完成: ```bash docker pull registry:latest ``` 此操作会下载最新版本的`registry`镜像至本地环境[^3]。 #### 启动Registry服务实例 接着,利用之前拉取下来的镜像来启动一个新的容器作为私有的Registry服务器,并指定必要的参数以确保其能够长期稳定运行以及支持删除功能: ```bash docker run -d \ -p 5000:5000 \ --restart always \ --name registry \ -v /opt/registry:/var/lib/registry \ -e REGISTRY_STORAGE_DELETE_ENABLED="true" \ registry:latest ``` 上述指令设置了端口映射(`-p`)使得外部网络可以访问该服务;启用了自动重启策略(`--restart`)保障稳定性;挂载了一个卷用于存储实际的数据文件(-v),并且开启了允许删除的功能[-e](REGISTRY_STORAGE_DELETE_ENABLED)。 #### 测试与验证 一旦成功部署了私有Registry之后,就可以尝试推送一些自定义构建好的镜像上去做初步测试。在此之前可能还需要调整客户端机器上的Docker守护进程配置以便能顺利连接到新设立的服务地址。具体做法涉及编辑daemon.json文件加入insecure-registries字段指明非HTTPS协议下的目标主机名或IP加上对应的监听端口号组合而成的位置信息[^4]。 #### 增强安全性(可选) 考虑到安全因素,在生产环境中通常建议为私有Registry配备认证机制及SSL/TLS加密传输通道。对于前者来说,可以通过集成HTPasswd或其他形式的身份验证插件实现;而后者则需准备好数字证书材料后按照指引进行相应设置[^5]。 #### 图形化管理界面(推荐) 尽管原生的Docker Registry并不自带GUI组件,不过借助于Portainer、Harbor这类第三方解决方案同样可以获得直观易用的操作面板来进行日常维护工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值