05docker仓库---搭建本地仓库
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仓库---搭建本地仓库的更多相关文章
- 基于【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 ...
- 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程序 ...
- docker搭建本地仓库并制作自己的镜像
原文地址https://blog.csdn.net/junmoxi/article/details/80004796 1. 搭建本地仓库1.1 下载仓库镜像1.2 启动仓库容器2. 在CentOS容器 ...
- Day 17 软件管理2之搭建本地仓库
1.列出yum源可用的软件仓库 [root@www.xuliangwei.com ~]# yum repolist [root@www.xuliangwei.com ~]# yum repolist ...
- 安装软件包的三种方法、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工 ...
- Linux CentOS7 VMware 安装软件包的三种方法、rpm包介绍、rpm工具用法、yum工具用法、yum搭建本地仓库
一.安装软件包的三种方法 Linux下游三种安装方法,rpm工具.yum工具.源码包.rpm按装一个程序包时,有可能因为该程序包依赖另一个程序包而无法安装:yum工具,可以连同依赖的程序包一起安装. ...
- [Maven实战](6)仓库(本地仓库,远程仓库,镜像)
1. 简单介绍 maven能够在某个位置统一存储全部maven项目共享的构件,这个统一的位置就是仓库.实际的Maven项目将不会各自存储其依赖文件,它们仅仅须要声明这些依赖的坐标,在须要的时候(比如. ...
- Docker 使用指南 (二)—— 搭建本地仓库
版权声明:本文由田飞雨原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/94 来源:腾云阁 https://www.qclou ...
- git 搭建本地仓库
文档 创建仓库 mkdir project cd project/ git init git remote add origin /d/project/.git // 仓库创建好了 echo hell ...
随机推荐
- Linux安装软件的时候出现乱码?
在Linux的中文操作系统下使用xmanager进行软件安装的时候,可能出现乱码界面,可以通过以下方法进行解决 1 修改环境属性 vi /etc/sysconfig/i18n LANG=" ...
- Linux设备驱动程序 之 内核符号表
insmod使用公共内核符号表来解析模块中未定义的符号.功能内核符号表中包含了所有全局内核项(函数和变量)的地址,这是实现模块化驱动程序所必须的.当模块装载到内核后,它所导出的任何符号都会变成内核符号 ...
- Nginx之共享内存与slab机制
1. 共享内存 在 Nginx 里,一块完整的共享内存以结构体 ngx_shm_zone_t 来封装,如下: typedef struct ngx_shm_zone_s ngx_shm_zone_t; ...
- 解决Linux下Firefox无法启动的问题
在linux下使用Firefox连接被测系统的GUI,一次偶然操作导致linux系统运行缓慢,Firefox无法正常操作,从system monitor 杀掉所有java进程将Firefox强行关闭. ...
- 在windows系统搭建并运行一个Flutter项目
搭建Flutter之前需要已经安装好相应的Flutter开发环境,如果没安装好相应环境的可以查看在windows系统搭建Flutter开发环境 搭建Flutter项目可以通过命令行搭建,或者通过and ...
- 微信小程序 保存图片
微信小程序 保存图片 注: 此处使用的是小程序 wepy框架, 原生或其他的请注意转换写法 <div class="handle"> <button class= ...
- LINUX 的网站压力测试工具 webbench
网站压力测试工具-Webbench webbench简介: Webbench是有名的网站压力测试工具,它是由 Lionbridge公司(http://www.lionbridge.com ...
- python实现在目录中查找指定文件的方法
python实现在目录中查找指定文件的方法 本文实例讲述了python实现在目录中查找指定文件的方法.分享给大家供大家参考.具体实现方法如下: 1. 模糊查找 代码如下: import os from ...
- mysql 高性能日记之索引(持续更新)
本文仅限于自己读写的笔记,需要具有一定 mysql(inodb,myisam 引擎)基础的高端玩家,不感兴趣的玩家们就不用在意了 Inodb 引擎 1,每个新建索引,都需要考虑清楚看是否是必须的,很多 ...
- 直连路由onlink
根据路由器学习路由信息.生成并维护路由表的方法包括直连路由(Direct).静态路由(Static)和动态路由(Dynamic).直连路由:路由器接口所连接的子网的路由方式称为直连路由:非直连路由:通 ...