第九章 Docker仓库的使用

仓库(Repository)是集中存放镜像的地方。
#1.常用官方仓库:Docker Hub,目前 Docker 官方维护了一个公共仓库 Docker Hub。
#2.常用私有仓库:Registry、Harbor

一、Docker公有仓库登录

大部分需求都可以通过在 Docker Hub 中直接下载镜像来实现。
#1.注册
在 https://hub.docker.com 免费注册一个 Docker 账号。

#2.登录和退出
登录需要输入用户名和密码,登录成功后,我们就可以从 docker hub 上拉取自己账号下的全部镜像。
[root@docker100 ~]# docker login

#3.退出 docker hub
[root@docker100 ~]# docker logout

二、Docker公有仓库常用命令

#1.搜索镜像
[root@docker100 ~]# docker search ubuntu:18.04

#2.拉取镜像
[root@docker100 ~]# docker pull  ubuntu:18.04

用户登录后,可以通过 docker push 命令将自己的镜像推送到 Docker Hub。
以下命令中的 username 请替换为你的 Docker 账号用户名。

#3.打上镜像tag
[root@docker100 ~]# docker tag ubuntu:18.04 jhno1/ubuntu:18.04

#4.查看镜像
[root@docker100 ~]# docker images
REPOSITORY     TAG       IMAGE ID       CREATED        SIZE
jhno1/ubuntu   18.04     54919e10a95d   13 days ago    63.1MB
ubuntu         18.04     54919e10a95d   13 days ago    63.1MB

#5.推送镜像到Docker Hub
[root@docker100 ~]# docker push jhno1/ubuntu:18.04

#6.再次搜索镜像
[root@docker100 ~]# docker search jhno1/ubuntu
NAME             DESCRIPTION       STARS         OFFICIAL    AUTOMATED
username/ubuntu

三、Registry私有镜像仓库搭建

1.下载Registry镜像

[root@docker100 ~]# docker pull registry

2.运行Registry镜像

docker run -d -v /data/images/registry:/var/lib/registry 
-p 5000:5000 
--restart=always 
--name private-registry registry

3.查看容器

[root@docker100 ~]# docker ps
CONTAINER ID   IMAGE      COMMAND                  CREATED          STATUS          PORTS                                       NAMES
a0e2c2189ce7   registry   "/entrypoint.sh /etc…"   5 seconds ago    Up 3 seconds    0.0.0.0:5000->5000/tcp, :::5000->5000/tcp   private-registry

4.查看镜像仓库中的所有镜像

[root@docker100 ~]# curl localhost:5000/v2/_catalog
{"repositories":[]}

这里返回的json数据代表暂无任何仓库,因为我们还没有上传任何镜像。

四、修改Docker配置

[root@docker100 ~]# vim /etc/docker/daemon.json 
{
      "registry-mirrors": ["https://8mh75mhz.mirror.aliyuncs.com"],
      "insecure-registries" : [ "10.0.0.100:5000" ]
  }

五、重启Docker

[root@docker100 ~]# systemctl  restart  docker.service

六、上传镜像

#1.给镜像打上tag
[root@docker100 ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx        latest    ad4c705f24d3   3 days ago     133MB
registry     latest    b2cb11db9d3d   12 days ago    26.2MB
centos       latest    300e315adb2f   9 months ago   209MB

[root@docker100 ~]# docker tag  centos:latest 10.0.0.100:5000/jhno1/centos8.6

#2.正式上传镜像到服务端镜像仓库
[root@docker100 ~]# docker push  10.0.0.100:5000/jhno1/centos8.6
Using default tag: latest
The push refers to repository [10.0.0.100:5000/jhno1/centos8.6]

七、验证镜像仓库的内容

[root@docker100 ~]# curl localhost:5000/v2/_catalog
curl localhost:5000/v2/_catalog
{"repositories":["jhno1/centos8.6"]}

八、下载镜像

#1.拉取镜像
[root@docker100 ~]# docker pull  10.0.0.100:5000/jhno1/centos8.6

#2.想要知道要下载的镜像都有哪些tag(或版本),可以通过下面这个api来获取:
[root@docker100 ~]# curl http://10.0.0.100:5000/v2/jhno1/centos8.6/tags/list
{"name":"jhno1/centos8.6","tags":["latest"]}
原文地址:https://www.cnblogs.com/jhno1/p/15262961.html