Docker仓库

仓库(Repository)是集中存放镜像的地方,分别公有仓库和私有仓库.

注册服务器是存放仓库的具体服务器。一个注册服务器上可以有多个仓库,每一个仓库里面可以有多个镜像。

eg:仓库地址private-docker. com/ubuntu来说,private-docker.com是注册服务器地址,ubuntu是仓库名。

1:https://hub.docker.com/ 公共镜像仓库

2:登录:docker login

注册登录后:会在本地家目录创建一个 .docker/config.json ,保存用户的认证信息。

2:搜索官方仓库中的镜像

ubuntu@ubuntu:~$ docker search  centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 5674 [OK]
ansible/centos7-ansible Ansible on Centos7 125 [OK]

3:搭建本地私有仓库

私有仓库,也就是在本地(局域网)搭建的一个类似公共仓库的东西,搭建好之后,我们可以将镜像提交到私有仓库中。

环境

准备两台安装好docker的服务器redhat7:

服务端机器 (主机名为registry):docker私有仓库服务器,运行registry容器;

测试端机器 (主机名为docker):普通的docker服务器,在这台服务器上下载一个测试镜像busybox,然后上传到registry服务器进行测试

3.1:部署(registry服务端操作)

1:下载镜像registry

[root@registry ~]# docker search registry
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
registry The Docker Registry 2.0 implementation for s… 2758 [OK]
distribution/registry WARNING: NOT the registry official image!!! … 58 [OK]
stefanscherer/registry-windows Containerized docker registry for Windows Se… 27 [root@registry ~]# [root@registry ~]# docker pull registry
[root@registry ~]# docker images #查看pull下来的镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
registry latest f32a97de94e1 8 months ago 25.8MB 2:运行容器
[root@registry ~]# docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
4c98ff5d1023632154914e5e5d5d77b08fda702095ae769b5728ff7463fa2d65
#-itd:在容器中打开一个伪终端进行交互操作,并在后台运行;
# -v:把宿主机的/data/registry目录绑定 到 容器/var/lib/registry目录(这个目录是registry容器中存放镜像文件的目录),来实现数据的持久化;
# -p:映射端口;访问宿主机的5000端口就访问到registry容器的服务了;
#--restart=always:这是重启的策略,假如这个容器异常退出会自动重启容器;
# --name registry:创建容器命名为registry,相当于别名 3:测试镜像仓库中所有的镜像 [root@registry ~]# curl http://192.168.1.20:5000/v2/_catalog
{"repositories":[]} #表示 #192.168.1.20是registry的主机IP

3.2:测试:docker 测试机上操作

1:修改镜像源头并重启docker服务
[root@docker ~]# cat /etc/docker/daemon.json
{"registry-mirrors":
["https://5f2jam6c.mirror.aliyuncs.com",
"http://hub-mirror.c.163.com"]
} [root@docker ~]# systemctl restart docker #重启docker服务 2:下载busybox镜像
[root@docker ~]# docker pull busybox
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest 020584afccce 2 weeks ago 1.22MB 3:为镜像打上标签
[root@docker ~]# docker tag busybox:latest 192.168.1.20:5000/busybox:v1
#192.168.1.20:5000/busybox:v1 是registry私有镜像服务器的IP地址和端口; #查看镜像
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.1.20:5000/busybox v1 020584afccce 2 weeks ago 1.22MB
busybox latest 020584afccce 2 weeks ago 1.22MB 4:上传到镜像服务器
[root@docker ~]# docker push 192.168.1.20:5000/busybox:v1
The push refers to repository [192.168.1.20:5000/busybox]
Get https://192.168.1.20:5000/v2/: http: server gave HTTP response to HTTPS client
#这里是报错了,docker镜像仓库暂不支持https,因为Docker与Docker Registry交互默认使用https,然而此处搭建的Docker Registry只提供http服务,所以当和Registry私有仓库交互时会失败,为了解决这个问题需要在启动Docker时配置Registry不安全选项 # 修改/etc/docker/daemon.json [root@docker ~]# cat /etc/docker/daemon.json
{"registry-mirrors":
["https://5f2jam6c.mirror.aliyuncs.com",
"http://hub-mirror.c.163.com"],
"insecure-registries": [ "192.168.1.20:5000"] #添加这一行,192.168.1.20为registry的ip
} [root@docker ~]# systemctl restart docker #重启docker服务
[root@docker ~]# docker push 192.168.1.20:5000/busybox:v1
The push refers to repository [192.168.1.20:5000/busybox]
1da8e4c8d307: Pushed
v1: digest: sha256:679b1c1058c1f2dc59a3ee70eed986a88811c0205c8ceea57cec5f22d2c3fbb1 size: 527 5:测试下载镜像
[root@docker ~]# docker rmi $(docker images -aq) -f #删除所有镜像
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE #从registry服务器上下载busybox镜像
[root@docker ~]# docker pull 192.168.1.20:5000/busybox:v1
v1: Pulling from busybox
0f8c40e1270f: Pull complete
Digest: sha256:679b1c1058c1f2dc59a3ee70eed986a88811c0205c8ceea57cec5f22d2c3fbb1
Status: Downloaded newer image for 192.168.1.20:5000/busybox:v1
192.168.1.20:5000/busybox:v1 5:列出registry的所有镜像
[root@docker ~]# curl http://192.168.1.20:5000/v2/_catalog
{"repositories":["busybox"]} 6:列出busybox镜像有哪些tag
[root@docker ~]# curl http://192.168.1.20:5000/v2/busybox/tags/list
{"name":"busybox","tags":["v1"]}

05docker仓库---搭建本地仓库的更多相关文章

  1. 基于【CentOS-7+ Ambari 2.7.0 + HDP 3.0】搭建HAWQ数据仓库01 —— 准备环境,搭建本地仓库,安装ambari

    一.集群软硬件环境准备: 操作系统:  centos 7 x86_64.1804 Ambari版本:2.7.0 HDP版本:3.0.0 HAWQ版本:2.3.05台PC作为工作站: ep-bd01 e ...

  2. 7.1 安装软件包的三种方法 7.2 rpm包介绍 7.3 rpm工具用法 7.4 yum工具用法 7.5 yum搭建本地仓库

    7.1 安装软件包的三种方法 7.2 rpm包介绍 7.3 rpm工具用法 7.4 yum工具用法 7.5 yum搭建本地仓库 三种方法 rpm工具----->类型windows下的exe程序 ...

  3. docker搭建本地仓库并制作自己的镜像

    原文地址https://blog.csdn.net/junmoxi/article/details/80004796 1. 搭建本地仓库1.1 下载仓库镜像1.2 启动仓库容器2. 在CentOS容器 ...

  4. Day 17 软件管理2之搭建本地仓库

    1.列出yum源可用的软件仓库 [root@www.xuliangwei.com ~]# yum repolist [root@www.xuliangwei.com ~]# yum repolist ...

  5. 安装软件包的三种方法、RPM包介绍、rpm、yum工具用法、yum搭建本地仓库

    第5周第3次课(4月18日) 课程内容: 7.1 安装软件包的三种方法7.2 rpm包介绍7.3 rpm工具用法7.4 yum工具用法7.5 yum搭建本地仓库 7.1 安装软件包的三种方法 rpm工 ...

  6. Linux CentOS7 VMware 安装软件包的三种方法、rpm包介绍、rpm工具用法、yum工具用法、yum搭建本地仓库

    一.安装软件包的三种方法 Linux下游三种安装方法,rpm工具.yum工具.源码包.rpm按装一个程序包时,有可能因为该程序包依赖另一个程序包而无法安装:yum工具,可以连同依赖的程序包一起安装. ...

  7. [Maven实战](6)仓库(本地仓库,远程仓库,镜像)

    1. 简单介绍 maven能够在某个位置统一存储全部maven项目共享的构件,这个统一的位置就是仓库.实际的Maven项目将不会各自存储其依赖文件,它们仅仅须要声明这些依赖的坐标,在须要的时候(比如. ...

  8. Docker 使用指南 (二)—— 搭建本地仓库

    版权声明:本文由田飞雨原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/94 来源:腾云阁 https://www.qclou ...

  9. git 搭建本地仓库

    文档 创建仓库 mkdir project cd project/ git init git remote add origin /d/project/.git // 仓库创建好了 echo hell ...

随机推荐

  1. Could not attach to a Hearthstone process.

    配置的加载 // Hearthbuddy.Windows.ConfigurationWindow // Token: 0x060001DB RID: 475 RVA: 0x00088A3C File ...

  2. linux如何将某个用户加入到其它组?

    答: 在Ubuntu下可以使用以下命令添加: sudo usermod -a -G <group_name> <user_name> 注意: 如何生效呢?   需要重新登陆系统 ...

  3. vsftpd 配置用户及根目录及其参数详解

    vsftpd 常用功能参数配置及参数详解 Table of Contents 1. 配置超级服务 2. 配置匿名用户 3. 配置本地用户登录 4. 配置虚拟用户登录 5. 使用SSL登入 6. 日志文 ...

  4. python之scrapy爬取某集团招聘信息

    1.创建工程 scrapy startproject gosuncn 2.创建项目 cd gosuncn scrapy genspider gaoxinxing gosuncn.zhiye.com 3 ...

  5. Linux终端中文显示乱码

    今天,帮我们同学处理一下中文显示乱码的问题.这个是个国内Linux用户烦恼的问题,由于大部分的Linux发行版都是以英语为主体的,而且英文在通用性和稳定性上都比中文要好一些,各种奇怪的BUG也要少一点 ...

  6. Cell中实现多图展示

    实现的效果如下: 主要实现代码如下: // // DetailCell.m // Floral // // Created by 思 彭 on 16/9/21. // Copyright © 2016 ...

  7. 在spring的业务层获取request,response

    1.直接通过controller层获取到传输到业务层2.SpringMVC提供的RequestContextHolder可以直接获取代码: RequestAttributes requestAttri ...

  8. idea标签页多行显示+设置标签页上限

    idea标签页多行显示+设置标签页上限 Setting--Editor--General--Editor Tabs

  9. C# WindowService 安装和卸载

    安装脚本 install.bat 内容 @echo 安装WindowService%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\installutil ...

  10. 架构模式: Saga

    架构模式: Saga 上下文 您已应用每服务数据库模式.每个服务都有自己的数据库.但是,某些业务事务跨越多个服务,因此您需要一种机制来确保服务之间的数据一致性.例如,假设您正在建立一个客户有信用额度的 ...