菜鸟系列docker——docker仓库(2)
1.仓库Registry
我们一般的镜像都是保存在仓库中,这样在其他服务器上可以直接从仓库获取镜像。仓库一般分为公共registry和私有registry。公共registry一般是Docker公司负责维护的Docker Hub。我们可以将自己的镜像保存在Docker Hub上。
1.1 公共registry
这里主要介绍Docker Hub的操作,当然也存在一些其他公共registry。接下来将介绍Docker Hub的一些操作。
- 进行账号注册 https://hub.docker.com,并创建仓库
- 在宿主机进行账号登陆
docker login -u eggsyz
- 先下载一个公共镜像nginx,再上传到自己仓库
[centos@jiliguo ~]$ docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
27833a3ba0a5: Already exists
ea005e36e544: Pull complete
d172c7f0578d: Pull complete
Digest: sha256:e71b1bf4281f25533cf15e6e5f9be4dac74d2328152edf7ecde23abc54e16c1c
Status: Downloaded newer image for nginx:latest
- 通过docker tag重命名,因为Docker Hub为了区别不同用户相同镜像,需用用户名进行命名镜像
[centos@jiliguo ~]$ docker images eggsyz/nginx
REPOSITORY TAG IMAGE ID CREATED SIZE
eggsyz/nginx latest 27a188018e18 3 days ago 109MB
- 上传到Docker Hub
docker push eggsyz/nginx
The push refers to repository [docker.io/eggsyz/nginx]
fc4c9f8e7dac: Layer already exists
912ed487215b: Layer already exists
5dacd731af1b: Layer already exists
latest: digest: sha256:c10f4146f30fda9f40946bc114afeb1f4e867877c49283207a08ddbcf1778790 size: 948
在Docker Hub查看,看到我们上传到镜像
后面我们就可以通过docker pull eggsyz/nginx来下载这个镜像了,各位看官可以试试能不能下载。
1.2私有registry
虽然公有仓库很方便,也很简单,但是存在以下几个问题。
- 需要网络
- 上传到镜像别人可以访问
- 平时工作的镜像是不能公开的。
因此,私有仓库就诞生了。其实搭建私有registry的方式也非常简单,这也是一个容器,下载镜像,运行容器即可。
1.下载registry镜像
[centos@jiliguo ~]$ docker pull registry
Using default tag: latest
latest: Pulling from library/registry
c87736221ed0: Pull complete
1cc8e0bb44df: Pull complete
54d33bcb37f5: Pull complete
e8afc091c171: Pull complete
b4541f6d3db6: Pull complete
Digest: sha256:3b00e5438ebd8835bcfa7bf5246445a6b57b9a50473e89c02ecc8e575be3ebb5
Status: Downloaded newer image for registry:latest
2.运行容器
[centos@jiliguo ~]$ docker run -d -p 6666:5000 -v /home/centos/registry/:/var/lib/registry registry
f59914248a09f3fe4b7afccef5c3585afc6406c428b1030840188124ae8fb728
[centos@jiliguo ~]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f59914248a09 registry "/entrypoint.sh /etc…" 7 seconds ago Up 5 seconds 0.0.0.0:6666->5000/tcp
3.镜像命名
docker tag eggsyz/nginx 192.168.9.110:6666/eggsyz/nginx
4.上传镜像
[centos@jiliguo ~]$ docker run -d -p 6666:5000 -v /home/centos/registry/:/var/lib/registry registry
c56e13b18ea1501e63b976387269228dcc87348374a8c6ff3a5da48f97223bde
[centos@jiliguo ~]$ docker push 192.168.9.110:6666/eggsyz/nginx
The push refers to repository [192.168.9.110:6666/eggsyz/nginx]
fc4c9f8e7dac: Pushed
912ed487215b: Pushed
5dacd731af1b: Pushed
latest: digest: sha256:c10f4146f30fda9f40946bc114afeb1f4e867877c49283207a08ddbcf1778790 size: 948
这一步可能会爆https错误http: server gave HTTP response to HTTPS client
解决方案之一:
在/etc/docker/目录下,创建daemon.json文件。在文件中写入:
{ "insecure-registries":["192.168.9.110:6666"] }
5.下载镜像
docker pull 192.168.9.110:6666/eggsyz/nginx
私有仓库还可以进行认证等操作。这部分详情请查看https://docs.docker.com/registry/configuration/。好了,仓库基本操作介绍完毕,后续介绍镜像和容器操作。
菜鸟系列docker——docker仓库(2)的更多相关文章
- 菜鸟系列docker——docker镜像中(4)
docker镜像命令 该章节主要介绍docker image相关命令实践操作,建议都一起跑一边 1. docker images 列举本机docker镜像 [centos@jiliguo docker ...
- 菜鸟系列docker——docker镜像上(3)
1. 镜像image 镜像和容器的关系就和安装包和程序的关系一样,有了镜像才可以启动容器,容器是镜像的一个运行实例. 1.1 镜像的结构 通过第二节仓库,可能很多看官已经查看到镜像是分层的,接下来将对 ...
- 菜鸟系列docker——docker镜像下(5)
1. docker镜像构建 该章节主要介绍2种构建docker镜像的方式.当然,当前基本上需要的基础镜像都有,直接使用即可.例如数据库.中间件之类的,只需要拿来使用即可,但是依然存在需要开发者构建镜像 ...
- Docker系列之Docker镜像(读书笔记)
一.基本概念 Docker包括三个基本概念镜像.容器.仓库. Docker镜像:就是一个只读的模板.例如:一个镜像可以包含一个完整的ubuntu操作系统环境,里面仅安装了Apache或其他应用程序.用 ...
- 你必须知道的Docker镜像仓库的搭建
近期工作中发现用到的容器镜像越来越多(不多的时候没考虑过镜像仓库的问题),同一个容器镜像也存在多个版本,那么镜像仓库的搭建需求就涌现出来,本文就目前的几个常用镜像仓库的搭建进行介绍,我们可以根据需要选 ...
- 创建docker私人仓库
关于创建docker私人仓库 1.1. 安装步骤 1.1.1. 直接从公共库上面下载register镜像在本地执行 1.1.1.1. ...
- 一步步搭建docker私有仓库并从私有仓库中下载镜像
一步步搭建docker私有仓库 #下载镜像 docker pull registry#查看镜像 docker images #运行私有仓库,指定端口和数据卷 docker run -d -p : -v ...
- 搭建docker私有仓库,建立k8s集群
服务器IP角色分布 192.168.5.2 etcd server 192.168.5.2 kubernetes master 192.168.5.3 kubernetes node 192.168. ...
- docker 私有仓库镜像的存储位置
docker 私有仓库的镜像 是存储在5739360d1030 registry "docker-registry" 3 days ago Up 28 hours 0.0.0.0: ...
- docker 镜像仓库 Harbor 部署 以及 跨数据复制
docker 镜像仓库 Harbor 部署 跨数据复制 Harbor 是 Vmwar 公司开源的 企业级的 Docker Registry 管理项目 它主要 提供 Dcoker Registry 管理 ...
随机推荐
- 81、iOS本地推送与远程推送详解
一.简介 分为本地推送和远程推送2种.可以在应用没打开甚至手机锁屏情况下给用户以提示.它们都需要注册,注册后系统会弹出提示框(如下图)提示用户石否同意,如果同意则正常使用:如果用户不同意则下次打开程序 ...
- java -version显示版本和JAvA_HOME配置不一样
当你需要安装多个版本的jdk时,可能会遇到更改了JAVA_HOME后java -version不变的情况. 一般情况下,将你的JAVA_HOME改为你要用的jdk的安装路径,然后你使用的就是这个版本的 ...
- 2019.03.29 bzoj3323: [Scoi2013]多项式的运算(非旋treap)
传送门 题意:定义一个无穷项的多项式f(x)f(x)f(x),初始各项系数都为0,现在有几种操作 将xLx^LxL到xRx^RxR这些项的系数乘上某个定值v 将xLx^LxL到xRx^RxR这些项的系 ...
- Python开发——14.threading模块和multiprocess模块
一.threading模块 1.threading类的两种创建方法 (1)直接创建 import time import threading def Hi(num): print("hell ...
- 洛谷P2689 东南西北
https://www.luogu.org/problemnew/show/P2689 #include<iostream> #include<algorithm> using ...
- MySql技术内幕之MySQL入门(1)
目录 MySql技术内幕之MySQL入门(1) 安装 关于注释 执行SQL语句 关于命令大小写 创建数据库 查看表的信息 查看更加详细的信息 查看与给定模式相匹配的列 插入数据 利用insert添加行 ...
- enumerate的用法
names = ["tony","huluwa","tom","jerry","lala"]for ...
- 解析分享链接在微信内转发防封API接口的实现原理
域名被微信封了怎么办?相信这是很多做微信的朋友的疑惑,本人也是做防封的,特此写一篇文章,写给域名被微信封的.被秒封的朋友来看.简单个大家讲一下防封原理和实现方式. 域名拦截因素 我们先来了解一下域名为 ...
- 微信 SQLite 数据库修复实践
1.前言 众所周知,微信在后台服务器不保存聊天记录,微信在移动客户端所有的聊天记录都存储在一个 SQLite 数据库中,一旦这个数据库损坏,将会丢失用户多年的聊天记录.而我们监控到现网的损坏率是0.0 ...
- 从Kubernetes到“云原生全家桶”,网易如何让业务部署提效280%?
近日,网易云轻舟微服务团队接受了CNCF的采访,分享了网易云在云原生领域尤其是Kubernetes方面的实践经验.以下为案例全文:公司:网易地点:中国杭州行业:互联网技术 挑战它的游戏业务是世界上最大 ...