• 第6章 创建容器的私有仓库


      仓库是集中存放镜像的地方。

      注册服务器才是存放仓库的具体的服务器,每个服务器上都存放着多个仓库,而每个仓库下放多个镜像,每个镜像上运行这多个容器,每个容器可以跑一个应用或者应用组。

    仓库的分类

      仓库分为公共仓库和私有仓库

    •  最大的公共仓库为hub.docker.com
    •    一般公司都会用到私有仓库

    创建私有仓库

    •   安装完docker后。可以通过官方提供的registry镜像部署一套本地的私有仓库环境
    •     -v 本地目录:容器目录
      [root@localhost ~]# mkdir -p /opt/data/registry
      [root@localhost ~]# docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry
      Unable to find image 'registry:latest' locally
      latest: Pulling from library/registry
      cbdbe7a5bc2a: Pull complete 
      47112e65547d: Pull complete 
      46bcb632e506: Pull complete 
      c1cc712bcecd: Pull complete 
      3db6272dcbfa: Pull complete 
      Digest: sha256:8be26f81ffea54106bae012c6f349df70f4d5e7e2ec01b143c46e2c03b9e551d
      Status: Downloaded newer image for registry:latest
      WARNING: IPv4 forwarding is disabled. Networking will not work.
      016adb8ddffb59e610d8a2867bd2b6952ce886b46e09d2306b4c265628a69543

      [root@localhost ~]# docker ps
      CONTAINER ID IMAGE COMMAND CREATED
      7ff804a476a0 registry "/entrypoint.sh /etc…" 27 hours
      2cae978452d0 nginx "/docker-entrypoint.…" 27 hours

        

    • 将镜像改名后推到仓库中
    • docker tag nginx 192.168.2.222:5000/nginx:test 将镜像改名 :原名  仓库名:端口/镜像
    • docker push 192.168.2.222:5000/nginx:test 将镜像推到仓库中
    • [root@localhost ~]# docker ps
      CONTAINER ID        IMAGE               COMMAND                  CREATED  
      7ff804a476a0        registry            "/entrypoint.sh /etc…"   27 hours
      2cae978452d0        nginx               "/docker-entrypoint.…"   27 hours
      [root@localhost ~]#docker tag nginx 192.168.2.222:5000/nginx:test
      [root@localhost ~]# docker push 192.168.2.222:5000/nginx:test
      The push refers to repository [192.168.2.222:5000/nginx] Get https://192.168.2.222:5000/v2/: http: server gave HTTP response to HTTPS client

       

    •  推送失败:原因docker默认是https提供服务,而这里是HTTP

    • 编辑/etc/docker/daemon.json
      将地址加入,重新启动docker,开启仓库
    • [root@localhost ~]# vim  /etc/docker/daemon.json 
      [root@localhost ~]# cat /etc/docker/daemon.json 
      {
        "registry-mirrors": ["https://72idtxd8.mirror.aliyuncs.com"],"insecure-registries": ["192.168.2.222:5000"]
      }
      [root@localhost ~]# systemctl restart docker
      [root@localhost ~]# docker ps -a
      CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
      f2ec0654c9fd        registry            "/entrypoint.sh /etc…"   16 minutes ago      Created                                        cranky_shockley
      7ff804a476a0        registry            "/entrypoint.sh /etc…"   27 hours ago        Exited (2) 2 minutes ago                       upbeat_ride
      2cae978452d0        nginx               "/docker-entrypoint.…"   27 hours ago        Exited (0) 2 minutes ago                       nginx-1
      [root@localhost ~]# docker start 7ff8
      7ff8
      

        

    • 重新将镜像推送到仓库
    • [root@localhost ~]# docker push  192.168.2.222:5000/nginx:test
      The push refers to repository [192.168.2.222:5000/nginx]
      7e914612e366: Pushed 
      f790aed835ee: Pushed 
      850c2400ea4d: Pushed 
      7ccabd267c9f: Pushed 
      f5600c6330da: Pushed 
      test: digest: sha256:99d0a53e3718cef59443558607d1e100b325d6a2b678cd2a48b05e5e22ffeb49 size: 1362
      

        

    • 测试下载镜像
    • [root@localhost ~]# docker rmi 192.168.2.222:5000/nginx:test
      Untagged: 192.168.2.222:5000/nginx:test
      Untagged: 192.168.2.222:5000/nginx@sha256:99d0a53e3718cef59443558607d1e100b325d6a2b678cd2a48b05e5e22ffeb49
      [root@localhost ~]# docker images
      REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
      [root@localhost ~]# docker pull 192.168.2.222:5000/nginx:test
      test: Pulling from nginx
      Digest: sha256:99d0a53e3718cef59443558607d1e100b325d6a2b678cd2a48b05e5e22ffeb49
      Status: Downloaded newer image for 192.168.2.222:5000/nginx:test
      192.168.2.222:5000/nginx:test
      [root@localhost ~]# docker images
      192.168.2.222:5000/nginx   test                bc9a0695f571        11 days ago         133MB
      
    •   

    • 停止容器之后,仓库也关闭了,想要启动容器就能够直接运行仓库加参数 --restart=always

      

  • 相关阅读:
    关于Ubuntu 9.10 的aptget update 一直无法更新源的点点滴滴
    CentOS的安装和搭建文件共享服务器(Samba)
    VirtualBox 下的 Ubuntu 虚拟机中使用 Android 真机做开发调试
    VmWare下安装CentOS6图文安装教程
    CentOS的远程桌面(xdm)
    ubuntu Apache安装设置
    关于母版页的按钮事件
    TSQL使用函数uppercase更新xml
    文章的上一篇和下一篇导航 V2
    数据库用户映射到 SQL Server 登录名
  • 原文地址:https://www.cnblogs.com/hanjiali/p/14089360.html
Copyright © 2020-2023  润新知