龙空技术网

搭建docker私有仓库

linux系统运维 90

前言:

今天姐妹们对“dockercentos搭建私有仓库”可能比较关切,大家都需要分析一些“dockercentos搭建私有仓库”的相关文章。那么小编在网上网罗了一些关于“dockercentos搭建私有仓库””的相关内容,希望看官们能喜欢,咱们快快来学习一下吧!

搭建docker私有仓库目的

我们在使用docker服务时,经常需要将自己的服务构建成docker镜像,私有的镜像提交到公共docker仓库是非常不方便的,公司的业务镜像更是不允许泄露,因此我们需要创建一个本地仓库供私人或公司内部使用。

docker-registry是官方提供的工具,用于搭建私有镜像仓库。

安装并运行docker-registry

1、安装docker

安装一些必要的工具

root]# yum install epel-release

root]# yum install -y yum-utils device-mapper-persistent-data lvm2

添加docker yum源

root]# yum-config-manager --add-repo

root]# yum makecache fast

安装docker-ce

root]# yum -y install docker-ce

root]# vim /etc/docker/daemon.json

{

"registry-mirrors": [

";

],

"insecure-registries": [

"192.168.1.13:5000" #允许使用本机内网ip作为私有仓库地址,允许使用http协议访问

]

}

注意:该文件必须符合 json 规范,否则 Docker 将不能启动。

root]# systemctl start docker #启动docker服务

root]# systemctl enable docker #添加开机启动

2、安装配置docker-registry私有仓库

root]# docker pull registry:latest #获取官网最新版registry镜像

root]# mkdir /etc/docker/registry

创建registry配置文件,在配置文件中的storage配置中增加 delete=true 配置项,私有仓库一定要允许删除镜像,否则在使用过程中累计的镜像越来越多,占用大量磁盘空间,老旧的镜像需要及时清理。

root]# vim /etc/docker/registry/config.yml

3、启动docker私有仓库

root]# docker run -d -p 5000:5000 -v /data/docker/registry:/var/lib/registry -v /etc/docker/registry/config.yml:/etc/docker/registry/config.yml --restart=always --name registry registry

-v /data/docker/registry:/var/lib/registry:将本地 /data/docker/registry 目录挂载到docker服务的 /var/lib/registry 目录,这样上传的私有镜像,就存储到本地的数据盘上,避免系统盘空间太小,导致磁盘空间写满故障。

-v /etc/docker/registry/config.yml:/etc/docker/registry/config.yml:将本地自己配置的配置文件挂载到docker镜像里,替换镜像里的配置文件。

查看一下我们的私有仓库里都有什么

root]# curl 192.168.1.13:5000/v2/_catalog

{"repositories":[]} #因为我们还没有提交镜像,所以空空如也

使用 docker pull 命令获取镜像

root]# docker pull hello-world:latest

使用 docker tag 命令标记镜像

root]# docker tag hello-world:latest 192.168.1.13:5000/ubuntu:latest

使用 docker push 命令上传镜像到私有仓库

root]# docker push 192.168.1.13:5000/ubuntu:latest

root]# curl 192.168.1.13:5000/v2/_catalog

{"repositories":["hello-world"]}

可以看到{"repositories":["hello-world"]},表明镜像已上传到私有仓库。

标签: #dockercentos搭建私有仓库