[TOC]

## 一 docker仓库和镜像tag

### A. docker仓库分类

docker镜像是需要放到一个统一的仓库的,以便不同的主机可以下载和使用相同的镜像而不必每次都用dockerfile自己做,docker镜像仓库按如下方式划分

1. 公共仓库

* 官方公共仓库

* docker hub

* 第三方公共仓库

* 阿里云

* 七牛云

* DaoCloud

* 时速云

2. 私有仓库

* 官方命令行仓库:registry

* 第三方web仓库:harbor

### B. docker镜像tag命名规范

在基础知识部分,介绍了标准镜像名由四部分组成: **仓库地址/项目名/镜像名:标签**,如`daocloud.io/library/nginx:latest`

一个高效的版本命名方案可以让用户清楚地知道当前使用的是哪个镜像,同时还可以保持足够的灵活性。

每个镜像可以有多个 tag,而多个 tag 可能对应的是同一个镜像。下面介绍 Docker 社区普遍使用的 tag 方案。

1. 初始版本`v1.9.1`

镜像名为myimage,当前需要的版本为 v1.9.1。那么可以给镜像打上四个 tag:1、1.9、1.9.1和 latest。

```

docker tag myimage-v1.9.1 myimage:1

docker tag myimage-v1.9.1 myimage:1.9

docker tag myimage-v1.9.1 myimage:1.9.1

docker tag myimage-v1.9.1 myimage:latest

```

2. 小版本更新`v1.9.2`

过了一段时间,发布了 v1.9.2。这时可以打上 1.9.2 的 tag,并将1、1.9和 latest 从 v1.9.1 移到 v1.9.2。

```

docker tag myimage-v1.9.2 myimage:1

docker tag myimage-v1.9.2 myimage:1.9

docker tag myimage-v1.9.2 myimage:1.9.2

docker tag myimage-v1.9.2 myimage:latest

```

3. 大版本更新

之后,v2.0.1 发布了。这时可以打上2、2.0、2.0.1的tag,并将 latest 移到 v2.0.1。

```

docker tag myimage-v2.0.1 myimage:2

docker tag myimage-v2.0.1 myimage:2.0

docker tag myimage-v2.0.1 myimage:2.0.1

docker tag myimage-v2.0.1 myimage:latest

```

4. tag方法有点总结

myimage:1 始终指向 1 这个分支中最新的镜像。

myimage:1.9 始终指向 1.9.x 中最新的镜像。

myimage:latest 始终指向所有版本中最新的镜像。

如果想使用特定版本,可以选择 myimage:1.9.1、myimage:1.9.2 或 myimage:2.0.1。

**Docker Hub 上很多 repository 都采用这种方案,要熟练使用**。

## 二 公共仓库docker hub

docker hub是docker官方提供的的公共镜像仓库,类似于代码仓库github,需要注册.

官方地址:https://hub.docker.com/

本人账号:luoxiaogang

账号密码:隐藏

私有仓库:c7-nginx

### A. 修改镜像名

修改镜像名,使其符合docker hub命名规范

```sh

docker image tag c7-nginx:v2 luoxiaogang/c7-nginx:v2

[root@docker01 ~]# docker image ls luoxiaogang/c7-nginx

REPOSITORY TAG IMAGE ID CREATED SIZE

luoxiaogang/c7-nginx v2 669691018aa6 5 days ago 789MB

```

### B. 登录docker hub

```sh

[root@docker01 ~]# docker login -u luoxiaogang

Password:

......

Login Succeeded

```

### C. 推送镜像

```

[root@docker01 ~]# docker push luoxiaogang/c7-nginx

The push refers to repository [docker.io/luoxiaogang/c7-nginx]

fd2fdb015cf0: Pushed

7912ce70bbc0: Pushed

2de8d3b18deb: Pushed

f903e5a29540: Pushed

228f6119c990: Pushed

54470def7538: Pushed

d69483a6face: Pushed

v2: digest: sha256:12843dfd....6 size: 1782

```

## 三 私有仓库(命令行)

### A. 公共操作-添加信任仓库

需要添加信任的原因是docker默认需要使用https的安全连接来下载镜像,而我们自己搭建的环境只有http,所以需要信任该地址.

```sh

vi /etc/docker/daemon.json

{

"registry-mirrors": ["https://registry.docker-cn.com"],

"insecure-registries": ["10.0.0.11:5000","10.0.0.11:5001"]

}

systemctl restart docker

```

### B. 无密码认证的私有仓库

1. 运行docker仓库

```sh

docker run -d -p 5000:5000 --restart=always -v /opt/myregistry:/var/lib/registry registry

```

2. 修改tag并推送

```sh

docker image tag c7-nginx:v2 10.0.0.11:5000/c7-nginx:v2

docker push 10.0.0.11:5000/c7-nginx

```

### C. 带密码认证的私有仓库

1. base认证密码文件准备

```sh

yum install httpd-tools -y

mkdir /opt/registry-var/auth/ -p

htpasswd -Bbn luogang 123456 >> /opt/registry-var/auth/htpasswd

```

2. 启动docker私有仓库

```sh

docker run -d -p 5001:5000 -v /opt/registry-var/auth/:/auth/ \

-v /opt/myregistry:/var/lib/registry \

-e "REGISTRY_AUTH=htpasswd" \

-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \

-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \

registry

```

3. 登录docker仓库

```

docker login 10.0.0.11:5001 -u luogang

```

4. 修改tag并推送

```sh

docker image tag c7-nginx:v2 10.0.0.11:5001/c7-nginx:v2

docker push 10.0.0.11:5001/c7-nginx

```

## 四 私有仓库(harbor)

企业级私有仓库harbor需要用到docker的单机编排工具docker-compose,所以这里仅列出步骤,等学过后便的docker-compose工具后,在单独写harbor的部署

1. 安装docker和docker-compose

2. 下载harbor

3. 修改harbor.cfg配置文件

4. 执行安装脚本

参考链接:https://www.cnblogs.com/pangguoping/p/7650014.html

docker tag 镜像id_6-docker镜像仓库和标签tag相关推荐

  1. Docker 入门系列(1)- 初识容器,镜像、容器、仓库的区别

    Docker 简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发 ...

  2. docker pull 下载一半_Docker三个重要的基本操作,镜像,容量,仓库

    前言 Docker的功能和特性有很多,各种运行命令.参数等也都要学习和练习. 比如:如何管理数据.如何管理网络.如何互相配合工作.如何编写更专业的Dockerfile等. 本文讲讲Docker镜像,容 ...

  3. docker利用Dockerfile来制作镜像

    在前面的例子(docker tomcat镜像制作)中,我们从下载镜像,启动容器,在容器中输入命令来运行程序,这些命令都是手工一条条往里输入的,无法重复利用,而且效率很低.所以就需要一 种文件或脚本,我 ...

  4. 使用git tag为代码仓库打标签

    在使用git进行项目管理时,一般使用指定特定的版本号或者分支上线部署.一般会有dev.test或release.master或pord分别表示开发.测试.上线分支,但是使用分支管理的时候,一般会从主分 ...

  5. docker如何实现重新打tag并删除原tag的镜像([仓库名: tag] 可以查询到指定id的镜像,同一个id镜像能有多个[仓库名: tag])(增加\删除镜像仓库:标签)

    文章目录 打tag 删除镜像(或删除镜像的不同[仓库名:tag]) 删除方法一 删除方法二 我的示例:删除镜像的多余tag docker镜像id是唯一的,可以物理性的标明一个镜像,repository ...

  6. Docker(三):镜像仓库 - 公共仓库、私有仓库 - commit、tag、push

    镜像分层 和 UnionFS docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统就是UnionFS. UnionFS是一种分层.轻量级并且高性能的文件系统.联合加载会把各层文件系统叠 ...

  7. 【Docker】registry部署docker私有镜像仓库

    Docker Hub作为Docker默认官方公共镜像仓库,但是如果我们不想使用怎么办,第一我们可以替换默认镜像仓库为我们国内的一些镜像仓库,第二就是如我们自己搭建一个自己的私有镜像仓库,官方也提供do ...

  8. docker如何push镜像到docker hub个人的仓库

    docker如何push镜像到docker hub个人的仓库 step1--找到本地镜像的ID:docker imagesstep2--登陆Hub:docker login --username=us ...

  9. Docker之镜像、容器、仓库概念

    Docker镜像 操作系统分为内核和用户空间.对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持.而 Docker 镜像(Image),就相当于是一个 root 文件系 ...

最新文章

  1. 【怎样写代码】偷窥高手 -- 反射技术(七):通过反射实例化对象
  2. 【笔记篇】C#笔记1
  3. KernelPCA进行非线性数据的映射和分类
  4. react-native run-android报错的原因,SDK位置未指定
  5. 使用Apache Storm和Apache Ignite进行复杂的事件处理(CEP)
  6. 计算机二级access知识点6,2019年计算机二级ACCESS考试知识点:关系数据模型
  7. Re:[转]Microsoft .Net Remoting系列专题
  8. python程序员工资-均薪3万?Python程序员就业各岗位薪资一览,你拖后腿了吗?...
  9. SQL语句-01-数据库操作/单表增删改查
  10. 如何理解图像的概率分布?为什么N(0,1)的向量可以Gen图片?
  11. gom引擎没有和账号服务器连接,GOM引擎提示脚本错误,找不到脚本
  12. smart检测指标详解
  13. three.js加载OBJ格式模型(vue中使用three.js51)
  14. 查看kms服务器信息,查看kms服务器地址
  15. android虚拟机启动失败
  16. 32年魔咒破解,见证国足3:0大胜韩国
  17. java从键盘上输入一位整数_当输入1到7时_从键盘上输入一位整数,当输入1~7时,显示对应的英文星期名称的缩写。...
  18. 在线ASCII转换工具
  19. 后端做app连续会员包月功能 -- IOS连续订阅 支付宝周期扣款
  20. BITMAP CONVERSION FROM ROWIDS

热门文章

  1. 注册MSCOMM控件
  2. HTML制作个人主页
  3. python高职教师2019培训
  4. 安卓编程基础——菜单
  5. Python爬虫从入门到精通:(42)JS逆向-闭包:凡科网逆向分析_Python涛哥
  6. SAP FICO自动清账程序(程序代码仅作参考,不保证一定可以运行)
  7. 学习记录677@项目管理之配置管理案例
  8. 谷歌版 ChatGPT 首秀就翻车...
  9. 拆解小鹏汽车财报:连续三个季度收入下滑,门店月均销量仅为8辆
  10. “error”:”get from image source failed: E405