精华内容
下载资源
问答
  • docker镜像下载及docker镜像管理

    千次阅读 2021-06-17 11:28:27
    文章目录docker镜像下载镜像说明通外网主机上获取镜像官网上查看镜像的详细说明镜像的命名方式镜像的重命名镜像的删除删除单个删除全部镜像镜像的打包与解压包默认存放路径说明镜像打包【单个】镜像打包【多个】镜像...

    docker镜像下载

    镜像说明

    • docker容器万事基于镜像,没有镜像,啥也干不了。
    • 我们通过主机上拉取到的镜像和我们在hu.docker.com官网看到的镜像内容是一样的。

    通外网主机上获取镜像

    • 前提是该主机上配置好相关源才可以【可以参考我博客中docker安装,里面有docker相关源的获取方式】
    • 命令:docker search 服务名
      如:docker search nginx
     [root@ccx ~]# docker search nginx
    INDEX       NAME                                         DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
    docker.io   docker.io/nginx                              Official build of Nginx.                        15016     [OK]       
    docker.io   docker.io/jwilder/nginx-proxy                Automated Nginx reverse proxy for docker c...   2035                 [OK]
    docker.io   docker.io/richarvey/nginx-php-fpm            Container running Nginx + PHP-FPM capable ...   814                  [OK]
    docker.io   docker.io/jc21/nginx-proxy-manager           Docker container for managing Nginx proxy ...   200                  
    docker.io   docker.io/linuxserver/nginx                  An Nginx container, brought to you by Linu...   147                  
    docker.io   docker.io/tiangolo/nginx-rtmp                Docker image with Nginx using the nginx-rt...   130                  [OK]
    docker.io   docker.io/jlesage/nginx-proxy-manager        Docker container for Nginx Proxy Manager        119                  [OK]
    docker.io   docker.io/alfg/nginx-rtmp                    NGINX, nginx-rtmp-module and FFmpeg from s...   99                   [OK]
    docker.io   docker.io/bitnami/nginx                      Bitnami nginx Docker Image                      98                   [OK]
    docker.io   docker.io/jasonrivers/nginx-rtmp             Docker images to host RTMP streams using N...   90                   [OK]
    docker.io   docker.io/nginxdemos/hello                   NGINX webserver that serves a simple page ...   70                   [OK]
    docker.io   docker.io/nginx/nginx-ingress                NGINX and  NGINX Plus Ingress Controllers ...   55                   
    docker.io   docker.io/privatebin/nginx-fpm-alpine        PrivateBin running on an Nginx, php-fpm & ...   55                   [OK]
    docker.io   docker.io/nginxinc/nginx-unprivileged        Unprivileged NGINX Dockerfiles                  38                   
    docker.io   docker.io/staticfloat/nginx-certbot          Opinionated setup for automatic TLS certs ...   23                   [OK]
    docker.io   docker.io/schmunk42/nginx-redirect           A very simple container to redirect HTTP t...   19                   [OK]
    docker.io   docker.io/nginx/nginx-prometheus-exporter    NGINX Prometheus Exporter for NGINX and NG...   18                   
    docker.io   docker.io/centos/nginx-112-centos7           Platform for running nginx 1.12 or buildin...   15                   
    docker.io   docker.io/centos/nginx-18-centos7            Platform for running nginx 1.8 or building...   13                   
    docker.io   docker.io/raulr/nginx-wordpress              Nginx front-end for the official wordpress...   13                   [OK]
    docker.io   docker.io/bitnami/nginx-ingress-controller   Bitnami Docker Image for NGINX Ingress Con...   9                    [OK]
    docker.io   docker.io/mailu/nginx                        Mailu nginx frontend                            8                    [OK]
    docker.io   docker.io/sophos/nginx-vts-exporter          Simple server that scrapes Nginx vts stats...   7                    [OK]
    docker.io   docker.io/ansibleplaybookbundle/nginx-apb    An APB to deploy NGINX                          2                    [OK]
    docker.io   docker.io/wodby/nginx                        Generic nginx                                   1                    [OK]
    [root@ccx ~]# 
    
    

    官网上查看镜像的详细说明

    • 其实上述方法获取源的地址就是下面这个网址。
    • 网址:https://hub.docker.com/
      • 进入网站后直接搜索想要的镜像名称即可
      • 到这个地方来是为了看这个镜像的详细说明【如默认参数这些】
    • 搜索出结果一般默认点第一个进去【这就是直接在主机上下载的镜像了】
      在这里插入图片描述
    • 这也说了下载方式
      在这里插入图片描述

    镜像的命名方式

    • 镜像的命名规范:主机名:端口/分类/镜像名:tag 【主机名也可以是IP哦】【tag是一个标签而已,可以自定义】
    • 如:192.168.159.129:5000//ckacentos:v1
      • 主机名不写,默认是docker.io
      • tag的默认值是latest
    • 端口默认80

    镜像的重命名

    • 镜像的重命名,我们仅仅是修改的REPOSITORY和TAG的名称
    • 格式是:docker tag 原名称:TAG 新主机名:端口/自定义名称:TAG名称
    • 如,我修改默认mysql名称为效果如下【修改后会多一个镜像,而非修改原来的行信息】
    [root@ccx ~]# docker images | grep mysql
    hub.c.163.com/library/mysql         latest              9e64176cd8a2        4 years ago         407 MB
    [root@ccx ~]# 
    [root@ccx ~]# docker tag hub.c.163.com/library/mysql:latest 192.168.159.129:5000/docker/mysql:v1
    [root@ccx ~]# docker images | grep mysql
    192.168.159.129:5000/docker/mysql   v1                  9e64176cd8a2        4 years ago         407 MB
    hub.c.163.com/library/mysql         latest              9e64176cd8a2        4 years ago         407 MB
    [root@ccx ~]# 
    
    • 修改后可以看到他们的ID是一样的,所以,重命名就相当于linux中的硬链接。

    镜像的删除

    删除单个

    • 镜像的删除有两种情况:

    • 1、如果删除的仅仅有一个镜像,那么删了后就没了

    • 2、如果有多个IMAGE ID的镜像,删除其中一个,实际上只是删除了这个名称的镜像而已

    • 格式是:docker rmi REPOSITORY名称:TAG名称 【rm是删除,i是镜像的意思】【如果不加TAG名称,则默认是latest】
      如,我现在删除一个我重命名的msq镜像【删了后myq这个镜像还是在的】【就不删镜像了测试了,我这下载没那么快】

    [root@ccx ~]# docker images | grep mysql
    192.168.159.129:5000/docker/mysql   v1                  9e64176cd8a2        4 years ago         407 MB
    hub.c.163.com/library/mysql         latest              9e64176cd8a2        4 years ago         407 MB
    [root@ccx ~]# docker rmi 192.168.159.129:5000/docker/mysql #因为我这tag是v1所以不加就会报错了
    Error response from daemon: No such image: 192.168.159.129:5000/docker/mysql:latest
    [root@ccx ~]# docker rmi 192.168.159.129:5000/docker/mysql:v1
    Untagged: 192.168.159.129:5000/docker/mysql:v1
    [root@ccx ~]# docker images | grep mysql
    hub.c.163.com/library/mysql       latest              9e64176cd8a2        4 years ago         407 MB
    [root@ccx ~]# 
    

    删除全部镜像

    • 方式1,写个脚本,批量删除名称,方式和上面删除单个一样,脚本不难, 但麻烦,可以直接用下面方式2。
    • 方式2,通过删除文件的方式【该方法仅仅适用于删除全部】
      • 首先停止服务,systemctl stop docker 【如果停止报错,stop这个服务systemctl stop docker.socket
      • 删除文件中的内容:rm -rf /var/lib/docker/* 【注,这不仅会删除全部镜像,还会删除全部默认券,不要乱执行该命令】
      • 启动服务:systemctl start docker
    [root@ccx ~]# docker images
    REPOSITORY                        TAG                 IMAGE ID            CREATED             SIZE
    hub.c.163.com/library/wordpress   latest              dccaeccfba36        3 years ago         406 MB
    hub.c.163.com/library/centos      latest              328edcd84f1b        3 years ago         193 MB
    hub.c.163.com/library/mysql       latest              9e64176cd8a2        4 years ago         407 MB
    [root@ccx ~]# systemctl stop docker
    [root@ccx ~]# rm -rf /var/lib/docker/*
    [root@ccx ~]# ls /var/lib/docker/
    [root@ccx ~]# systemctl start docker
    [root@ccx ~]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    [root@ccx ~]# 
    

    镜像的打包与解压包

    默认存放路径说明

    • 镜像的默认存储路径是:/var/lib/docker/overlay2/
      ls查看的时候可以看到有很多这种ID,一行一行的
    [root@ccx overlay2]# ls
    046d16560f6e302cce9f312e0a92fe2fa5af64dcccd878e6c6fd3abae4ae66ff
    05e36729cab1d107a5101bcc4afa6badc98472df0dccc67b8d270041462f862b
    0d96eeb37078360984f52e1275a49b17ca69ebd7e5ab69f5158f934ad5929c0f
    19a25ffd816ca1ceb673c57123131b0525d343347802937d767489955c79d592
    1bf657e6b015252670a9222210a7f0c88a6daa40575a1b2b02069271760cc1d8
    1d632e47898c8b4311b071af56f2fac88daf09c69157f303bb601cb4bdda9278
    30d3a89075e63e2bb82a0c4ee5255c7361ea7f5e1d68a65723a29521ebe96e58
    5399d869c74c4dcff565f36b9d9082d42b7d3592e74763cbd8730fdeaaa3e79b
    5fc041b0163d777695fe6481b429c0c0e28933e493654668f3bd9a1bce389d37
    6992dcd44ab5dc2088fb2e289d20d8d2a54b6531075ed53ae04be3861c805e63
    70b5d10a7ea02c7771d35db14f9c24894aec36bab5e887d8b782899a35aa1fdf
    73e9be947f30c404756c705d03729857605ae003366a5d44810b2b4c1fe9cee8
    865fe7284725347b83d360fed6285a7f086dc5aa0e0e23fcf06a4e1afb2629bc
    8bcd2b971a603db62f77da48b998a544818b360be1229d239ff4f378ae35dfa0
    9183f962601c61f541fee4f679e39ad2c19d02ae8cb18c10f97337f249707517
    a1601bbb19f321ea8b9ec1f9a45e477124a06ffd8eedd78766d513d38489583b
    a29df21d8e873187d4164d70e9f2612599ee2c7a6662d6d1fe655e04ff97ebf1
    b203d73b8587baddedfb0c55440ba7b445ae1c9131f22abd1ba37a26d36ec699
    
    • 是因为我们docker pull 的时候,有很多这种Download,一个Download占一行信息,如果有多个images的话,根本不能知道一个images对应的哪些行信息
    69692152171a: Downloading 27.06 MB/27.15 MB
    30afc0b18f67: Download complete 
    596b1d696923: Download complete 
    febe5bd23e98: Download complete 
    8283eee92e2f: Download complete 
    351ad75a6cfa: Download complete 
    

    总大小和我们用docker images看到的是差不多的

    [root@ccx overlay2]# docker images
    REPOSITORY                        TAG                 IMAGE ID            CREATED             SIZE
    hub.c.163.com/library/wordpress   latest              dccaeccfba36        3 years ago         406 MB
    hub.c.163.com/library/centos      latest              328edcd84f1b        3 years ago         193 MB
    hub.c.163.com/library/mysql       latest              9e64176cd8a2        4 years ago         407 MB
    [root@ccx overlay2]# pwd
    /var/lib/docker/overlay2
    [root@ccx overlay2]# du -sh
    1.1G    .
    [root@ccx overlay2]# 
    [root@ccx overlay2]# ls
    046d16560f6e302cce9f312e0a92fe2fa5af64dcccd878e6c6fd3abae4ae66ff
    05e36729cab1d107a5101bcc4afa6badc98472df0dccc67b8d270041462f862b
    0d96eeb37078360984f52e1275a49b17ca69ebd7e5ab69f5158f934ad5929c0f
    19a25ffd816ca1ceb673c57123131b0525d343347802937d767489955c79d592
    1bf657e6b015252670a9222210a7f0c88a6daa40575a1b2b02069271760cc1d8
    1d632e47898c8b4311b071af56f2fac88daf09c69157f303bb601cb4bdda9278
    30d3a89075e63e2bb82a0c4ee5255c7361ea7f5e1d68a65723a29521ebe96e58
    5399d869c74c4dcff565f36b9d9082d42b7d3592e74763cbd8730fdeaaa3e79b
    5fc041b0163d777695fe6481b429c0c0e28933e493654668f3bd9a1bce389d37
    6992dcd44ab5dc2088fb2e289d20d8d2a54b6531075ed53ae04be3861c805e63
    70b5d10a7ea02c7771d35db14f9c24894aec36bab5e887d8b782899a35aa1fdf
    73e9be947f30c404756c705d03729857605ae003366a5d44810b2b4c1fe9cee8
    865fe7284725347b83d360fed6285a7f086dc5aa0e0e23fcf06a4e1afb2629bc
    8bcd2b971a603db62f77da48b998a544818b360be1229d239ff4f378ae35dfa0
    9183f962601c61f541fee4f679e39ad2c19d02ae8cb18c10f97337f249707517
    a1601bbb19f321ea8b9ec1f9a45e477124a06ffd8eedd78766d513d38489583b
    a29df21d8e873187d4164d70e9f2612599ee2c7a6662d6d1fe655e04ff97ebf1
    b203d73b8587baddedfb0c55440ba7b445ae1c9131f22abd1ba37a26d36ec699
    backingFsBlockDev
    bd53a5149549fd796937aece3ed1528132a130e3dd969094ecc13b8b754a89db
    bef4811b4a55e717088657a616af5afdd2a7a4a010848f00addba4579342bd32
    c2abe01b549aec02fae7cef9e073c09799776f78e425a4bd74fe192c3eca6f91
    c53c61061c6a5f6cbfe06ab78d1775d4540734fb5ad88e4a8d691c8c3616cab0
    c9b7be64bdad354a71a80f48e280e2f86ef5d9bfae12e3828cf493e6dd9f1337
    c9b7dec653e74886057f222e8ef728ed73f0204966a376ede38512ee613c6c20
    cd56cf41219ce51abfbac20529492b93d2fa03477e179b28e4fb634e1456023a
    d247723d779a68fb06d19c5c902045cddbd73560b18027b7b4503d72295805be
    dd8dd138ac25e6cd247501b8ecb353650681a71573c20ee89c0503e312dffe28
    ef3cfa499cd010c8c0a1c15f2458d6e58300c09b19de48b3ea320481f7a94376
    efdac498c27497f1accf7e5cc5157510a2ac675f6073df7368ceddecfb3e34be
    fdfec033c82b487ec9211096664651b4bdaef4e6a4fbdfe62cc6c09c37185e5a
    l
    [root@ccx overlay2]# 
    
    

    镜像打包【单个】

    • 直接用命令即可,格式:docker save REPOSITORY名称 > 自定义名称.tag
    • 如,我现在打包mysql,代码如下
    [root@ccx ~]# docker images
    REPOSITORY                        TAG                 IMAGE ID            CREATED             SIZE
    hub.c.163.com/library/wordpress   latest              dccaeccfba36        3 years ago         406 MB
    hub.c.163.com/library/centos      latest              328edcd84f1b        3 years ago         193 MB
    hub.c.163.com/library/mysql       latest              9e64176cd8a2        4 years ago         407 MB
    [root@ccx ~]# 
    [root@ccx ~]# docker save hub.c.163.com/library/mysql > mysql.tar  
    

    打包完成的这个镜像tar包就可以拷贝到其他服务器上,再解压使用了哦,解压方式看下面。

    镜像打包【多个】

    • 直接用命令即可,格式:docker save REPOSITORY名称1 REPOSITORY名称2 REPOSITORY名称3 > 自定义名称.tag【名称之间用一个空格隔开】
      注:这个必须是一个包一个镜像,不能>>追加不同镜像到一个包里啊
    • 如我现在同时打包现在的3个镜像到all.tar里面
    [root@ccx ~]# docker images
    REPOSITORY                        TAG                 IMAGE ID            CREATED             SIZE
    hub.c.163.com/library/wordpress   latest              dccaeccfba36        3 years ago         406 MB
    hub.c.163.com/library/centos      latest              328edcd84f1b        3 years ago         193 MB
    hub.c.163.com/library/mysql       latest              9e64176cd8a2        4 years ago         407 MB
    [root@ccx ~]# docker save hub.c.163.com/library/wordpress hub.c.163.com/library/centos hub.c.163.com/library/mysql > all.tar
    

    镜像解压

    • 也是通过命令解压,格式为:docker load -i tar包名称
    • 如,我解压mysql.tar这个镜像包
      拷贝到其他服务器麻烦了,所以我直接删除现在的这个mysql镜像,再解压出来测试
    [root@ccx ~]# docker images | grep mysql #存在
    hub.c.163.com/library/mysql       latest              9e64176cd8a2        4 years ago         407 MB
    [root@ccx ~]# docker rmi hub.c.163.com/library/mysql #删除
    Untagged: hub.c.163.com/library/mysql:latest
    Untagged: hub.c.163.com/library/mysql@sha256:b2bce1a792237ac5df78877d583f34b09ab023a77130921a6bcce67ce2d24ff0
    Deleted: sha256:9e64176cd8a206f88336506fe52cd8f87423147dc197d0250175dddc39465e90
    Deleted: sha256:2d79a736de4c447bbad1801e9e4568d6b5f2ba4cc2d5e31a908af9bf51e9b3b3
    Deleted: sha256:6e4bd70bb55bcb5ad9850d51c13fd6d40c66aae50bca7741fd940561b2a148e2
    Deleted: sha256:75c1f169d72e1475a4427f528343669d2973701589a26791aacfda1dd5df4f66
    Deleted: sha256:b934b913f0c1280d85ee196c29a5b246087d74a2a6747b479b4a677f05d11626
    Deleted: sha256:47be8aca05b42f1e1a4c9e7058f1eaf59a68119f7e7cbec56b9a68aeb8ed8fc5
    Deleted: sha256:ba5061936a764f53b2d1118db1f491f06f4afb0a1a19f94aa0d07ee3ac1a5949
    Deleted: sha256:0bfdd0113d6e2adeef68baa97ab6da9900698f656e9ca193b274cb25e67a12ac
    Deleted: sha256:edcf46029534ffee6cbf4b621473ad513b66b60ab0e9f8c15107b841c2986755
    Deleted: sha256:bd0eace476f07ae4c41014e81823062d43f3c848aa5337061f59833590ff15f9
    Deleted: sha256:4a0ae64be2238aa31b864ee1e396b24f672025bcf98656a10e4ee3158b2c8399
    Deleted: sha256:295d6a056bfd381abf9c462629066b0458373045a1dca7d13ef6128cb38c977e
    [root@ccx ~]# docker images | grep mysql #没了
    [root@ccx ~]# docker load -i mysql.tar  #解压
    295d6a056bfd: Loading layer 129.2 MB/129.2 MB
    3b7c5f5acc82: Loading layer 344.6 kB/344.6 kB
    da4155a7d640: Loading layer 4.657 MB/4.657 MB
    daf31ec3573d: Loading layer 1.536 kB/1.536 kB
    904af8e2b2d5: Loading layer 39.68 MB/39.68 MB
    2bee3420217b: Loading layer 25.09 kB/25.09 kB
    e5de8ba20fae: Loading layer 3.584 kB/3.584 kB
    9e615ff77b4f: Loading layer 240.5 MB/240.5 MB
    fa9efdcb088a: Loading layer 6.144 kB/6.144 kB
    3c376267ac82: Loading layer 9.216 kB/9.216 kB
    8129a85b4056: Loading layer 1.536 kB/1.536 kB
    Loaded image: hub.c.163.com/library/mysql:latest
    [root@ccx ~]# docker images | grep mysql #有了
    hub.c.163.com/library/mysql       latest              9e64176cd8a2        4 years ago         407 MB
    [root@ccx ~]# 
    

    容器的导出和导入

    把容器导出为镜像

    格式为:docker export 容器名 > 自定义名称.tar

    镜像导入为容器

    格式为:cat 导出的自定义名称.tar | docker import - 镜像名

    查看镜像内容中的cmd进程

    简单来说,在镜像里,都会指定,使用我这个镜像所生成的容器里运行的是什么进程【这个进程就是cmd进程】

    查看镜像中的cmd进程内容

    • 命令: docker history REPOSITORY名称
    • 如,查看mysq的进程【一般为第一行】
      可以看到mysq的cmd进程为mysqld进程
    [root@ccx ~]# docker history  hub.c.163.com/library/mysql | head -n 2
    IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
    9e64176cd8a2        4 years ago         /bin/sh -c #(nop)  CMD ["mysqld"]               0 B                 
    [root@ccx ~]# 
    

    查看镜像的完整内容【不压缩】

    • 这个主要是用于 某个 服务的 cmd进程内容太长显示不全,才用这个命令让其不压缩显示,平常的话直接 docker history查看即可
    • 命令: docker history REPOSITORY名称 --no-trunc
    • 如,nginx直接history查看就显示不全,所以需要加上这个参数,让其显示完整。
    [root@ccx ~]# docker history docker.io/nginx | head -n 2
    IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
    d1a364dc548d        3 weeks ago         /bin/sh -c #(nop)  CMD ["nginx" "-g" "daem...   0 B                 
    [root@ccx ~]# docker history docker.io/nginx --no-trunc| head -n 2
    IMAGE                                                                     CREATED             CREATED BY                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  SIZE                COMMENT
    sha256:d1a364dc548d5357f0da3268c888e1971bbdb957ee3f028fe7194f1d61c6fdee   3 weeks ago         /bin/sh -c #(nop)  CMD ["nginx" "-g" "daemon off;"]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         0 B                 
    [root@ccx ~]# 
    
    展开全文
  • 下载了CentOS的镜像文件压缩包(`.tar`),解压后是一个文件夹而不是镜像文件(不是`.iso`文件). ![图片说明](https://img-ask.csdn.net/upload/201706/10/1497089629_642996.png)
  • 安卓工具解压镜像

    2016-01-20 16:46:35
    解压缩 Android ROM IMG 文件使用Greenleaf Android 系统 IMG 解压缩程序是一个非常容易使用的应用程序,可以用于从 Android 系统 IMG 中提取数据压缩的文件 (Rom)
  • docker容器打包成镜像和压缩 (1)将容器保存成镜像 sudo docker commit -a 'sunmingyang' b4293c3b9202 mask_detectionv2:v2 (2)将镜像打包 docker save -o mask_detection_v5.tar mask_detection:v5 (3) 将...

    docker容器打包成镜像和压缩

    (1)将容器保存成镜像

    sudo docker commit -a 'sunmingyang' b4293c3b9202  mask_detectionv2:v2
    

    (2)将镜像打包

    docker save -o mask_detection_v5.tar mask_detection:v5
    

    (3) 将镜像包压缩

     sudo tar -zcvf mask_detection_v5.tar.gz mask_detection_v5.tar
    

    还有一种容器的打包和压缩一步到位的方法:

    docker save mask_detection:v5 | gzip > mask_detection_v5.tar.gz
    

    docker镜像压缩包解压及镜像载入

    (1)压缩包解压

    tar -zxvf mask_detection_v5.tar.gz
    

    得到.tar格式的镜像包

    (2)镜像载入

    sudo docker load -i mask_detection_v5.tar
    

    载入后利用

    sudo docker images
    

    查看已存在的镜像。

    展开全文
  • 需要解压安卓备份的img文件的来拿把,在Windows中查看img,支持XP,VISTA,WIN7,WIN8,更高.. Android安卓img镜像文件解压,安卓备份文件解压,安卓备份的img文件解压缩 很方便
  • 相对Registry,Harbor具有很多优势,本文主要介绍Harbor镜像仓库的安装与使用,以及使用Docker从Harbor中上传与下载镜像 提供分层传输机制 提供WEB界面,优化用户体验 支持水平扩展集群 Harbor安装步骤 1、安装...

    Harbor镜像仓库的安装与使用

    简介:Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,除了Harbor这个私有镜像仓库外,还有Docker官方提供的Registry。相对Registry,Harbor具有很多优势,本文主要介绍Harbor镜像仓库的安装与使用,以及使用Docker从Harbor中上传与下载镜像

    • 提供分层传输机制
    • 提供WEB界面,优化用户体验
    • 支持水平扩展集群

    Harbor安装步骤

    1、安装Docker

    具体参考我之前的文章,docker 入门教程 https://blog.csdn.net/weixin_44178366/article/details/106595673

    2、安装Docker-compose

    下载docker-compost

    sudo curl -L "https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    

    赋予权限

    sudo chmod +x /usr/local/bin/docker-compose
    

    查看Docker-compose版本

    [root@iZwz9eq1jai7e87n6vw5liZ ~]# docker-compose -version
    docker-compose version 1.21.2, build a133471
    [root@iZwz9eq1jai7e87n6vw5liZ ~]# docker-compose 安装成功
    

    3、下载Harbor

    harbor安装可以使用在线安装或者离线安装。在线安装需要联网所以体积非常小,离线安装的包比较大。在这里,由于github网站不通,我选择离线安装的方式

    手动下载地址 https://github.com/goharbor/harbor/releases

    # 将下载好的压缩包传到linux服务器
    [root@iZwz9eq1jai7e87n6vw5liZ harbor]# ls
    harbor-offline-installer-v1.5.0.tgz
    [root@iZwz9eq1jai7e87n6vw5liZ harbor]# tar -zxf harbor-offline-installer-v1.5.0.tgz
    [root@iZwz9eq1jai7e87n6vw5liZ harbor]# ls 解压之后的文件
    harbor  harbor-offline-installer-v1.5.0.tgz
    

    修改harbor的配置文件

    [root@iZwz9eq1jai7e87n6vw5liZ harbor]# vim harbor.cfg
    hostname = 你主机IP  #待会barbor启动成功后能访问的页面,默认80端口
    

    **执行 ./prepare **

    [root@iZwz9eq1jai7e87n6vw5liZ harbor]# ./prepare
    Generated and saved secret to file: /data/secretkey
    Generated configuration file: ./common/config/nginx/nginx.conf
    Generated configuration file: ./common/config/adminserver/env
    Generated configuration file: ./common/config/ui/env
    Generated configuration file: ./common/config/registry/config.yml
    Generated configuration file: ./common/config/db/env
    Generated configuration file: ./common/config/jobservice/env
    Generated configuration file: ./common/config/jobservice/config.yml
    Generated configuration file: ./common/config/log/logrotate.conf
    Generated configuration file: ./common/config/jobservice/config.yml
    Generated configuration file: ./common/config/ui/app.conf
    Generated certificate, key file: ./common/config/ui/private_key.pem, cert file: ./common/config/regis
    The configuration files are ready, please use docker-compose to start the service.
    

    执行 ./install.sh 命令

    [root@iZwz9eq1jai7e87n6vw5liZ harbor]# ./install.sh
    
    [Step 0]: checking installation environment ...
    
    Note: docker version: 19.03.11
    
    Note: docker-compose version: 1.21.2
    
    [Step 1]: loading Harbor images ...
    52ef9064d2e4: Loading layer [==================================================>]  135.9MB/135.9MB
    c169f7c7a5ff: Loading layer [==================================================>]  154.2MB/154.2MB
    a2194b3a5434: Loading layer [==================================================>]  10.75MB/10.75MB
    f3809b773329: Loading layer [==================================================>]  2.048kB/2.048kB
    bdd2cd4d5394: Loading layer [==================================================>]  48.13kB/48.13kB
    bce61638a813: Loading layer [==================================================>]   10.8MB/10.8MB
    Loaded image: vmware/clair-photon:v2.0.1-v1.5.0
    0bf5fb4e60f4: Loading layer [==================================================>]     95MB/95MB
    9fc876f7ef97: Loading layer [==================================================>]  6.656kB/6.656kB
    9f364ae08e7f: Loading layer [==================================================>]  2.048kB/2.048kB
    d8e3574f27f2: Loading layer [==================================================>]   7.68kB/7.68kB
    .
    .
    .
    [Step 3]: checking existing instance of Harbor ...
    
    
    [Step 4]: starting Harbor ...
    Creating network "harbor_harbor" with the default driver
    Creating harbor-log ... done
    Creating redis              ... done
    Creating harbor-db          ... done
    Creating registry           ... done
    Creating harbor-adminserver ... done
    Creating harbor-ui          ... done
    Creating harbor-jobservice  ... done
    Creating nginx              ... done
    
    ✔ ----Harbor has been installed and started successfully.----
    For more details, please visit https://github.com/vmware/harbor .
    
    [root@iZwz9eq1jai7e87n6vw5liZ harbor]# 启动成功,接着访问配置文件中配置的页面即可
    
    

    Harbor的启动与停止

    docker-compose up -d  # 启动
    docker-compose stop # 停止
    docker-compose restart # 重新启动
    

    harbor页面访问,使用默认的账户和密码 admin Harbor12345
    在这里插入图片描述

    在Harbor创建用户和项目

    1)创建项目

    Harbor的项目分为公开和私有的:

    公开项目:所有用户都快要访问,通常存放公共的镜像,默认有一个library公开项目

    私有项目:只有授权用户才可以访问,通换成那个存放项目本身的镜像

    然后可以创建用户,并分配项目权限,之后上传镜像可以登录创建的用户

    把本地镜像上传到Harbor(测试用)

    把本地jar包上传到linux服务器

    [root@iZwz9eq1jai7e87n6vw5liZ makeImages]# ls
    micro-server-eureka-7001-1.0-SNAPSHOT.jar
    [root@iZwz9eq1jai7e87n6vw5liZ makeImages]#
    

    编写Dockerfile文件

    FROM openjdk:8-jdk-alpine
    ARG JAR_FILE
    COPY ${JAR_FILE} app.jar
    EXPOSE 7001
    ENTRYPOINT ["java","-jar","/app.jar"]
    

    构建镜像

    [root@iZwz9eq1jai7e87n6vw5liZ makeImages]# ls
    Dockerfile  micro-server-eureka-7001-1.0-SNAPSHOT.jar
    [root@iZwz9eq1jai7e87n6vw5liZ makeImages]# docker build --build-arg JAR_FILE=micro-server-eureka-7001-1.0-SNAPSHOT.jar -t eureka:v1 .
    Sending build context to Docker daemon  40.38MB
    Step 1/5 : FROM openjdk:8-jdk-alpine
    8-jdk-alpine: Pulling from library/openjdk
    e7c96db7181b: Pull complete
    f910a506b6cb: Pull complete
    c2274a1a0e27: Pull complete
    Digest: sha256:94792824df2df33402f201713f932b58cb9de94a0cd524164a0f2283343547b3
    Status: Downloaded newer image for openjdk:8-jdk-alpine
     ---> a3562aa0b991
    Step 2/5 : ARG JAR_FILE
     ---> Running in abc5865df3f5
    Removing intermediate container abc5865df3f5
     ---> acf88ea40f2d
    Step 3/5 : COPY ${JAR_FILE} app.jar
     ---> 21c13d245f67
    Step 4/5 : EXPOSE 7001
     ---> Running in 9fcc4953b5dc
    Removing intermediate container 9fcc4953b5dc
     ---> f637b2856709
    Step 5/5 : ENTRYPOINT ["java","-jar","/app.jar"]
     ---> Running in 4d7fb6d0c37a
    Removing intermediate container 4d7fb6d0c37a
     ---> e38cc76e668f
    Successfully built e38cc76e668f
    Successfully tagged eureka:v1  # 构建成功
    [root@iZwz9eq1jai7e87n6vw5liZ makeImages]# docker images  查看镜像
    REPOSITORY                    TAG                 IMAGE ID            CREATED         
    eureka                        v1                  e38cc76e668f        16 seconds ago 
    

    创建容器

    [root@iZwz9eq1jai7e87n6vw5liZ makeImages]# docker run -d --name eureka -p 7001:7001 eureka:v1
    422a873e68ee334b602c00cbe2d7b7c1a00f6d623acf537e85b095fd04ff99ac  # 运行成功
    

    访问eureka地址

    http://39.108.6.54:7001/
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sQ5UJWJW-1593263593019)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200627201347152.png)]

    自测没问题,接下来就该测试上传这个镜像了!

    把镜像上传到私有仓库Harbor

    1、先给镜像打上标签

    # test_micro_serve 为Harbor创建的仓库名字eureka:v1为给这个镜像取的名字
    # eureka:v1为给这个镜像取的名字
    [root@iZwz9eq1jai7e87n6vw5liZ makeImages]# docker tag eureka:v1 39.108.6.54/test_micro_serve/eureka:v1   
    [root@iZwz9eq1jai7e87n6vw5liZ makeImages]# docker images
    REPOSITORY                            TAG                 IMAGE ID            CREATED             SIZE
    39.108.6.54/test_micro_serve/eureka   v1                  e38cc76e668f        11 minutes ago      145MB
    eureka                                v1                  e38cc76e668f        11 minutes ago      145MB
    
    

    2、推送镜像

    [root@iZwz9eq1jai7e87n6vw5liZ makeImages]# docker push 39.108.6.54/test_micro_serve/eureka:v1
    
    
    报错:  Get https://39.108.6.54/v2/: dial tcp 39.108.6.54:443: connect: connection refused
    

    3、将Harbor仓库地址添加为Docker信任列表

    # 编辑 /etc/docker 下的daemon.json文件
    
    {
      "registry-mirrors": ["https://ggb52j62.mirror.aliyuncs.com"],
      "insecure-registries":["39.108.6.54"] # 将Harbor仓库的地址添加为Dokcer的信任列表
    }
    # 然后重启Docker
    systemctl restart docker
    
    

    4、再次执行推送命令,提示权限不足

    [root@iZwz9eq1jai7e87n6vw5liZ harbor]# docker push 39.108.6.54/test_micro_serve/eureka:v1
    The push refers to repository [39.108.6.54/test_micro_serve/eureka]
    4d891904981c: Preparing
    ceaf9e1ebef5: Preparing
    9b9b7f3d56a0: Preparing
    f1b5933fe4b5: Preparing
    denied: requested access to the resource is denied # 提示权限不足,这是因为我们还没有登入Harbor的私有仓库,Docker并不知道要把这个镜像提交到哪里
    

    5、登入Harborm,然后提交推送

    [root@iZwz9eq1jai7e87n6vw5liZ harbor]# docker login -u pihao -p ****** 39.108.6.54
    WARNING! Using --password via the CLI is insecure. Use --password-stdin.
    WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
    Configure a credential helper to remove this warning. See
    https://docs.docker.com/engine/reference/commandline/login/#credentials-store
    
    Login Succeeded # 登入成功
    # 再次推送
    [root@iZwz9eq1jai7e87n6vw5liZ harbor]# docker push 39.108.6.54/test_micro_serve/eureka:v1
    The push refers to repository [39.108.6.54/test_micro_serve/eureka]
    4d891904981c: Pushing [====>                                              ]  3.834MB/40.38MB
    ceaf9e1ebef5: Layer already exists
    9b9b7f3d56a0: Layer already exists
    f1b5933fe4b5: Layer already exists
    ^C
    [root@iZwz9eq1jai7e87n6vw5liZ harbor]# docker push 39.108.6.54/test_micro_serve/eureka:v1
    The push refers to repository [39.108.6.54/test_micro_serve/eureka]
    4d891904981c: Pushed
    ceaf9e1ebef5: Layer already exists
    9b9b7f3d56a0: Layer already exists
    f1b5933fe4b5: Layer already exists
    v1: digest: sha256:330bab5ee774423769da0d646c17e4d8571f5eb1544b7d005f937dcc96d7f274 size: 1159
    # 推送成功
    

    6、查看推送的镜像

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z4JCkcZY-1593263593022)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200627204432351.png)]

    从Harbor下载镜像(测试用)

    刚才已经在39.108.6.54这台服务器上传了一个镜像,接着我们在112.74.167.52这台服务器拉取镜像并运行

    1) 修改 /etc/docker/daemon.json文件 ,将Harbor仓库地址添加为信任列表

    {
      "registry-mirrors": ["https://ggb52j62.mirror.aliyuncs.com"],
      "insecure-registries":["39.108.6.54"] # 将Harbor仓库的地址添加为Dokcer的信任列表
    }
    

    2) 登入Harbor仓库

    [root@pihao ~]# docker login -u pihao -p PIhao@123 39.108.6.54
    WARNING! Using --password via the CLI is insecure. Use --password-stdin.
    WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
    Configure a credential helper to remove this warning. See
    https://docs.docker.com/engine/reference/commandline/login/#credentials-store
    
    Login Succeeded
    [root@pihao ~]#
    

    3) 进入Harbor仓库复制下载镜像的命令

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3aMkC8Wg-1593263593024)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200627205202955.png)]

    [root@pihao ~]# docker pull 39.108.6.54/test_micro_serve/eureka:v1
    v1: Pulling from test_micro_serve/eureka
    e7c96db7181b: Already exists
    f910a506b6cb: Already exists
    c2274a1a0e27: Already exists
    33d7469815fe: Pull complete
    Digest: sha256:330bab5ee774423769da0d646c17e4d8571f5eb1544b7d005f937dcc96d7f274
    Status: Downloaded newer image for 39.108.6.54/test_micro_serve/eureka:v1
    39.108.6.54/test_micro_serve/eureka:v1
    # 拉取成功
    

    4)运行并访问

    [root@pihao ~]# docker run -d -p 7001:7001 39.108.6.54/test_micro_serve/eureka:v1
    c221702c6e61fd2bd2a21c227ca106bd5124dc9ccc1732dd4624ad1315acc832
    [root@pihao ~]# docker ps
    CONTAINER ID        IMAGE                                    COMMAND                CREATED             STATUS              PORTS                    NAMES
    c221702c6e61        39.108.6.54/test_micro_serve/eureka:v1   "java -jar /app.jar"   2 seconds ago       Up 1 second         0.0.0.0:7001->7001/tcp   practical_euler
    [root@pihao ~]#
    
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JXl0OwMV-1593263593027)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200627210000164.png)]

    Harbor镜像仓库的基本使用以讲完,现在基本的环境已搭建完毕,下篇文章主要讲解SpringCloud微服务持续集成的实战。

    展开全文
  • docker-下载镜像并安装mysql5.7

    千次阅读 2016-12-07 19:57:54
    docker下载镜像并安装mysql5.7

    docker查找镜像(image)

    $ docker search ubuntu
    search for ubuntu

    下载镜像

    $ docker pull image_name

    查看本地镜像

    $ docker images
    查看本地镜像

    运行并进入镜像

    $ docker run -it repository:tag /bin/bash

    下载安装mysql 5.7

    [mysql官网]这里有apt-get的安装方式,不需要下载tar包再解压,比较简单。

    首先在这里找到deb的地址:http://dev.mysql.com/get/mysql-apt-config_0.8.0-1_all.deb
    使用命令 wget http://dev.mysql.com/get/mysql-apt-config_0.8.0-1_all.deb配置好环境准备安装mysql 5.7

    发现新下载的ubuntu镜像没有wget命令,安装wget方法如下:
    $ apt-get update
    $ apt-get install wget

    安装好wget之后就可以继续了
    $ wget http://dev.mysql.com/get/mysql-apt-config_0.8.0-1_all.deb
    $ apt-get update 这里一定要更新一定要更新一定要更新!!!
    $ apt-get install mysql-server

    安装完成!查看一下mysql的版本
    mysql 5.7

    启动mysql服务,然后就可以登陆啦~
    $ service mysql start
    $ mysql -u username -p
    mysql登陆

    ps:一开始以为mysql会自动启动,就没有手动启动,结果登陆的时候报错如下ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2),所以小伙伴们如果遇到2002错误很可能是没有启动服务哦~

    展开全文
  • 阿里云OSS存储--下载镜像到本地使用

    千次阅读 2020-03-30 15:53:09
    前提给实例创建快照 在阿里云控制台→存储与快照→快照→创建快照→创建自定义镜像...我的镜像有5.25G直接用迅雷下载,试了很多次都失败了,这里需要用到一个下载工具OSS Browser,下载下来直接解压即可用。 创建子...
  • 如何下载windows镜像

    万次阅读 2017-10-24 19:08:59
    这个经历了很长时间的网站可以下载在右边点击操作系统,选择自己需要又喜欢的下载(以wnindows7为例):肯定选择中文-简体windows版本( Enterprise 为企业版; Enterprise with Service Pack 1 为企业版的第一个...
  • Red Hat 镜像下载

    千次阅读 2019-06-24 10:05:52
    注:本博文为转载博文,支持原创。 RedHat Enterprise Server 7.5 for x86_64:rhel-server-7.5-x86_64-dvd.part1.rar(密码...(单个文件大于 4G ,拆分为两个 rar 压缩包,请一起下载后再解压) SHA-256: d0dd6...
  • WIN11自定义版本镜像下载教程。 ... 2.选择下方最新DEV开发者预览版WIN11 22000.51,并选择系统语言。 3.选择镜像包含的版本,比如,我只想...5.用解压软件解压下载的工具包,右键以管理员运行uup_download_windows.
  • 实战Docker镜像文件的制作过程,这个镜像用来下载OpenJDK11源码
  • 使用工具:UItraISO 和 DAEMON Tools Lite 1、使用Demon 创建虚拟光驱并加载完整的iso系统镜像 ...4、将解压的文件导入iso镜像 5、生成ISO镜像 文件—>保存 ,自动弹出处理过程对话框 最后...
  • 微软官方Office2019正版镜像下载

    万次阅读 多人点赞 2019-07-05 10:02:37
    微软此前已经发过预告称该公司将不再提供镜像下载,然而很意外的是目前依然流出微软官方版的镜像文件。 本次微软官方提供的非公开镜像文件采用.IMG格式而不是ISO格式,当然对于用户来说这两种并无明显区别。 但...
  • conda镜像失效后,如何手动下载packages 最近刚接触anaconda,想通过anaconda下载各种packages,但用了anaconda prompt跑conda install -c quantopian zipline,却总是出现这种反馈 通过后来的查找才弄清楚,原来是...
  • 说明:该文件为最新Surface Pro5 官方恢复镜像文件高速下载地址,为本人亲自挂机下载了近20个小时才从官网搬运过来。同款平板的朋友需要恢复自己的Surface Pro5平板就再也不需要忍受官方几十kb/s的下载速度了。里面...
  • 6、解压两个压缩包为一个rhel-server-7.5-x86_64-dvd.iso镜像,成功 [root@server1 ~]# rar e rhel-server-7.5-x86_64-dvd.part*.rar rhel-server-7.5-x86_64-dvd.iso RAR 5.61 Copyright (c) 1993-2018 ...
  • 镜像镜像文件以及挂载镜像

    千次阅读 2018-07-21 16:21:26
    镜像(Mirroring):是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像。 镜像是一种文件存储形式,可以把许多文件做成一个镜像文件,与GHOST等程序放在一个盘里用GHOST等软件打开后...
  • Office 2019 官方镜像下载地址

    千次阅读 2018-09-27 23:45:00
    IMG镜像如何进行安装: 下载IMG镜像后右键点击装载按钮或直接双击镜像文件,Windows 10系统会自动将其挂载到资源管理器里。 打开资源管理器的挂载好的镜像运行根目录下的S...
  • 2013年开始用树莓派,发现现在有树莓派4b了,4G内存,很不错。 一、风扇的安装 ...二、先装个树莓派的操作系统试试 ...(3)下载7zip来解压下载的raspbian_full_latest https://www.7-zip.or...
  • Windows更新Docker镜像目录
  • KiCad 下载安装及镜像站介绍

    千次阅读 2020-04-20 22:07:53
    KiCad EDA 下载 KiCad 国内镜像 清华大学 TUNA 协会 短链接为:http://tuna.kicad.cn(推荐????) 莞工 GNU/Linux 协会 短链接为:http://dglinux.kicad.cn (开源软件镜像站) 南京大学开源镜像站 短链接为:...
  • maven下载太慢?Intellij修改maven镜像

    千次阅读 2016-11-07 09:40:09
    可以到官方网站下载maven压缩包,解压之后找到该文件,或者去我的百度云下载(https://pan.baidu.com/s/1i59a7nZ)已经修改好的文件 删除文档中的中间的部分,添加阿里云的maven镜像,如下所示 <m
  • 树莓派Pi4B系统镜像下载和烧写

    千次阅读 多人点赞 2020-07-19 21:21:08
    树莓派Pi4B系统镜像下载和烧写 文章目录树莓派Pi4B系统镜像下载和烧写一.树莓派启动方式及支持的系统二.树莓派镜像下载地址三.树莓派系统镜像烧写 一.树莓派启动方式及支持的系统 树莓派开发板没有配置板载...
  • linux下解压iso镜像文件方法

    千次阅读 2013-06-20 10:42:17
    iso文件复制到linux机器上之后,我们可以按如下进行解压:    在linux下,当kernel支持iso9660时,可以 : mount -t iso9660 -o loop xxx.iso /mnt/iso ,然后再/mnt/iso下,就有iso文件里的所有内容
  • 树莓派烧录镜像

    2018-08-07 16:16:45
    1.解压下载的操作系统镜像压缩文件,得到img镜像文件。 2.将SD使用卡托或者读卡器后,连上电脑。 3.解压并运行USB Image Tool工具。 4.在软件中选择系统镜像(img文件),选择“Restore”,然后选择相应的系统镜像...
  • cdlinux镜像

    2018-06-03 00:35:27
    此文件为CD LINUX的镜像解压至U盘使用。用法不多做介绍!
  • 用这种方式无需先把下载好的ISO安装镜像文件先解压或写入镜像到U盘或硬盘。如果U盘已经是老毛桃WinPE最新版启动菜单(网管经常用它来直接恢复GHO来安装Windows),还不需要破坏它,这个很棒。 实现这个的前提是因为老...
  • 下载固件装机步骤简述安装官方镜像下载镜像格式化内存卡烧录镜像到内存卡启动树莓派无显示器启动方式安装Centos镜像下载镜像格式化内存卡烧录镜像到内存卡启动树莓派 简述 本节我们将讲解树莓派如何烧录镜像,这也是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 83,300
精华内容 33,320
关键字:

下载的镜像怎么解压