• 利用docker实现私有镜像仓库


    利用docker实现私有镜像仓库

    在linux服务器上安装了docker过后,可以拉取docker镜像仓库:

      

    docker pull registry

    再执行命令让镜像run起来:

     docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry

    通过docker ps能够看到正在运行的容器:

    当jenkins执行pipeline或者jenkinsfile的时候,会执行 docker push生成的应用程序镜      像到这个私有仓库。所以要在jenkins的服务器推送镜像时:

      推送到自己的私有镜像仓库中:

    docker push 192.168.50.178:5000/tomcat

      当然,报错了,我们来看看是什么错:

      Get https://192.168.50.178:5000/v2/: http: server gave HTTP response to HTTPS client

       因为提交镜像仓库的时候,docker默认是按照https来的,但是我们这里是http,所以可以通过配置修改信任:

      在你的推送docker服务器和docker私有镜像仓库的服务器都要同时修改配置文件:

    vim /etc/docker/daemon.json

      添加如下代码行:

      

      再次重启docker服务,这一次就可以推送成功了。

      

      如果想拉取这个镜像,可以执行如下命令行:

      

      其实,这里比较痛苦的是删除镜像,由于出于安全考虑,这里默认是没法删除镜像的,我们只能利用其它的方式删除:利用delete_docker_registry_image删除,下面是配置过程:

      

    curl https://raw.githubusercontent.com/burnettk/delete-docker-registry-image/master/delete_docker_registry_image.py | sudo tee /usr/local/bin/delete_docker_registry_image >/dev/null

    sudo chmod a+x /usr/local/bin/delete_docker_registry_image
     

       再配置环境变量:

        找到registry的如下目录:

        

      配置镜像仓库:

    export      REGISTRY_DATA_DIR=/var/lib/docker/volumes/9f99d08ed9abf43a9204a1d9cda556fc5dc6baeb9d82b0de88684e513d516bcb/_data/docker/registry/v2

      

      配置完过后,再次执行删除命令:

    /usr/local/bin/delete_docker_registry_image -i tomcat

      查看是否删除了:

    curl -XGET http://192.168.50.178:5000/v2/_catalog

       如果说你执行 /usr/local/bin/delete_docker_registry_image报错,说找不到python,那么可能是你用的是python3,改为python2就好了

    当然,这个是自己搭建的私有镜像仓库,不是很好用,大家可以用一些开源的docker镜像仓库,还有ui界面,显示更加友好一点,比如说:Harbor.大家可以去用一用,很好用的。

  • 相关阅读:
    Luogu P2633 Count on a tree
    Luogu P4011 孤岛营救问题
    Luogu P3157 [CQOI2011]动态逆序对
    SCOI2015 国旗计划
    AT2165 Median Pyramid Hard
    BZOJ2959 长跑
    SCOI2015 情报传递
    SDOI2011 染色
    SCOI2010 幸运数字
    SHOI2016 黑暗前的幻想乡
  • 原文地址:https://www.cnblogs.com/zhaowei520/p/10917674.html
Copyright © 2020-2023  润新知