Centos 7构建docker私有镜像仓库

容器镜像的管理主要围绕镜像仓库(Registry)来进行。在实际应用中,无论开发人员或CI系统发布镜像,还是测试人员或运维人员下载镜像,都要通过镜像仓库来完成。镜像仓库分为公有仓库和私有仓库两种,例如Docker Hub就属于公有仓库,公有仓库的优点是可以直接使用,无须自己维护。但考虑到访问效率和镜像安全等方面的原因,企业可构建自己内部的私有仓库,供内部员工上传、下载镜像使用。
系统环境:

服务器 操作系统 IP地址 已安装软件
docker仓库主机 Centos 7.5 64位 192.168.2.225 docker-ce-18.06.1.ce
docker主机 Centos 7.5 64位 192.168.2.226 docker-ce-18.06.1.ce

一、构建私有仓库

1、下载registry镜像
docker pull registry

2、创建容器并运行
docker run -itd -p 192.168.2.225:5000:5000 -v /data/docker/registry:/var/lib/registry --restart=always --name registry registry:latest

参数说明:
-itd:开启交互模式,分配一个伪终端,以后台方式运行
-p:把容器的5000端口映射到宿主机指定IP的5000端口上
-v:把容器的/var/lib/registry目录映射到宿主机的/data/docker/registry目录,/var/lib/registry是容器中存放镜像文件的目录,来实现数据的持久化
--restart=always:重启策略,容器异常退出会自动重启容器
--name:指定容器的名称为registry
3、查看仓库中的镜像
curl http://192.168.2.225:5000/v2/_catalog

因为才刚运行,还未上传任何镜像,所以是空的

二、测试(另一台docker主机上操作)

1、将之前创建好的镜像打个标签
注:centos/httpd:test是我上一篇博文里制作的镜像,http://blog.51cto.com/andyxu/2174652
docker tag centos/httpd:test 192.168.2.225:5000/httpd-test:v1

参数说明:
tag:标记本地镜像,将其归于某一个仓库
centos/httpd:test是源镜像和标记信息
192.168.2.225:5000/httpd-test:v1是目标镜像,包含私有仓库的IP和端口
2、修改配置文件,添加私有仓库地址
vim /etc/docker/daemon.json

{
  "registry-mirrors": ["https://registry.docker-cn.com"], "graph": "/data/docker",
  "insecure-registries": ["192.168.2.225:5000"]
}

3、重启docker服务
systemctl restart docker
4、将镜像上传到私有仓库
docker push 192.168.2.225:5000/httpd-test:v1

5、查看私有仓库中的镜像
查看所有镜像
curl http://192.168.2.225:5000/v2/_catalog

查看httpd-test镜像有哪些tags
curl http://192.168.2.225:5000/v2/httpd-test/tags/list

6、将本地镜像打包成tar文件,保存到/tmp/目录下
docker save -o /tmp/httpd-test-v3.tar 192.168.2.225:5000/httpd-test

参数说明:
save:将指定镜像保存成tar归档文件
-o:目标文件,可使用绝对路径和相对路径
7、删除已经打过包的本地镜像
docker rmi -f 192.168.2.225:5000/httpd-test:v1 centos/httpd:test

8、从私有仓库下载httpd-test镜像
docker pull 192.168.2.225:5000/httpd-test:v1

9、创建并启动容器
docker run -itd --privileged --restart=always --name httpd_test -p 80:80 192.168.2.225:5000/httpd-test:v1 /usr/sbin/init

注:具体参数使用请参考我的上一篇部署博文http://blog.51cto.com/andyxu/2174652
10、通过浏览器访问http://192.168.2.226

能正常访问到apache主页,OK

原文地址:http://blog.51cto.com/andyxu/2175081

时间: 2024-10-02 22:20:32

Centos 7构建docker私有镜像仓库的相关文章

使用Nexus3构建Docker私有镜像仓库

一.安装Nexus3 Nexus3是Sonatype提供的仓库管理平台,Nuexus Repository OSS3能够支持Maven.npm.Docker.YUM.Helm等格式数据的存储和发布:并且能够与Jekins.SonaQube和Eclipse等工具进行集成.Nexus3支持作为宿主和代理存储库的Docker存储库,可以直接将这些存储库暴露给客户端工具:也可以以存储库组的方式暴露给客户端工具,存储库组是合并了多个存储库的内容的存储库,能够通过一个URL将多个存储库暴露给客户端工具,从而

如何搭建docker私有镜像仓库

设置登录鉴权操作搭建参考: https://blog.csdn.net/shida_csdn/article/details/78435971 参考指南:https://blog.51cto.com/ganbing/2080140 服务端机器 (主机名为registry):docker私有仓库服务器,运行registry容器:节点机器 (主机名为node):普通的docker服务器,在这台服务器上可以上传和下载镜像: 1. 服务端下载镜像registry docker pull registry

手动搭建Docker本地私有镜像仓库

实验环境:两个Centos7虚拟机,一个是Server,用作客户端,另一个是Registry,用作Docker私有镜像仓库. 基础配置 查看一下两台虚拟机的IP地址 Server的IP地址是192.168.134.151. Registry的IP地址是192.168.134.150. 使用setenforce 0临时关闭SElinux. 打开Server和Registry的内核转发功能 编辑配置文件/etc/sysctl.conf,添加下面的内容: net.ipv4.ip_forward = 1

【Docker】(4)搭建私有镜像仓库

[Docker](4)搭建私有镜像仓库 说明 1. 这里是通过阿里云,搭建Docker私有镜像仓库. 2. 这里打包的镜像是从官网拉下来的,并不是自己项目创建的新镜像,主要测试功能 一.搭建过程 首先进入阿里云创建镜像仓库: https://dev.aliyun.com/search.html-->点击管理中心(初次使用会提示开通,然后设置密码) 然后创建命名空间和镜像仓库: 有关docker拉取和推送指令,点击上图的中管理,就能看到. 1.登录阿里云 docker login [email p

Docker 构建私有镜像仓库(6)

title: Docker 构建私有镜像仓库(6) date: 2018-12-18 08:47:27 tags: Docker categories: Docker copyright: true --- Docker是基于Go语言实现的开源容器项目,Docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口,Docker诞生于2013年年初,最初发起者是dotCloud公司.

(六)构建Docker私有仓库、Gitlab仓库和持续集成环境

环境说明 IP 功能 eth0:192.168.124.139 eth1:172.16.100.10 Docker私有仓库.Gitlab.持续集成 eth0:192.168.124.138 eth1:172.16.100.20 Docker服务器,运行容器 构建Docker私有仓库 我们通过Docker官方镜像registry来构建私有仓库. 首先要关闭防火墙.开启IP转发,在CentOS 7上IP转发是禁用的. 默认情况下会将仓库目录创建在容器的/var/lib/registry/下,所以我们

docker 创建私有镜像仓库

docker 创建私有镜像仓库1创建配置文件 {"insecure-registries":["192.168.1.10:5000"] //本地仓库地址}2.重启动docker服务systemctl restart docker3.启动私有仓库docker run -d -p 5000:5000 registry:latest4.上传镜像到私有仓库给镜像打标签后上传 docker tag nginx:latest 192.168.1.10:5000/nginx:la

使用docker Registry快速搭建私有镜像仓库

当我们执行docker pull xxx的时候,docker默认是从registry.docker.com这个地址上去查找我们所需要的镜像文件,然后执行下载操作.这类的镜像仓库就是docker默认的公共仓库,所有人都可以直接查看或下载.使用,但是呢,基于网络原因,下载速度有限制比较慢.因此,我们在公司内部内网环境中使用dokcer,一般不会将镜像文件上传到公网公共库中.但内部共享使用就是个问题,所以,私有仓库就由此产生了. 什么是私有仓库? 私有仓库,就是本地(内网环境)组建的一个与公网公共库功

私有镜像仓库Harbor基础介绍与部署

企业级私有镜像仓库Harbor 一:介绍 Harbor,是一个英文单词,意思是港湾,港湾是干什么的呢,就是停放货物的,而货物呢,是装在集装箱中的,说到集装箱,就不得不提到Docker容器,因为docker容器的技术正是借鉴了集装箱的原理.所以,Harbor正是一个用于存储Docker镜像的企业级Registry服务. Registry是Docker官方的一个私有仓库镜像,可以将本地的镜像打标签进行标记然后push到以Registry起的容器的私有仓库中.企业可以根据自己的需求,使用Dokcerf