zoukankan      html  css  js  c++  java
  • 第九章 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"]}
    
  • 相关阅读:
    liunx 利用管道线kill多个进程
    将多个学生平均分配到多个学校的方法示例
    mysql 根据查询条件进行update
    Mysql 使用临时表比较数据差异以及 临时表的优化
    Netcore 将汉字转化为拼音
    mysql 清除多列重复数据,只保留其中一条
    使用Mysql 存储过程和游标进行同步数据
    Culture is not supported. (Parameter 'name') u0002� is an invalid culture identifier.
    Swagger 过滤特定控制器配置方法(Swashbuckle.AspNetCore 5.0.0)
    System.Linq Distinct 方法使用
  • 原文地址:https://www.cnblogs.com/jhno1/p/15262961.html
Copyright © 2011-2022 走看看