美文网首页linux 我用 LinuxLinux
docker 简单私有仓库搭建

docker 简单私有仓库搭建

作者: bboysoul | 来源:发表于2018-04-17 22:57 被阅读24次

    概述

    虽然说使用公共的镜像仓库很方便,但是还是有一些不好的地方,比如网速的问题,dockerhub在中国是很慢的,还有就是上传到dockerhub上的镜像是所有人都可以访问的,如果我们想要一个速度快,而且不想给别人访问的仓库那么就需要自己搭建了,首先介绍一下我搭建仓库的本地环境,其实很简单,就是一台云服务器,一台树莓派,云服务器用来当仓库。

    搭建仓库

    搭建其实很简单,没有什么是一个镜像做不到的,如果不能,那就两个,搭建仓库最简单的做法,就是在dockerhub上pull下官方的仓库镜像 进行搭建就好了。你们可以在dockerhub上搜索registry,第一个就是,pull到本地就好,详细的使用指南,上面也有,如果觉得pull的速度太慢,那么可以使用阿里云大的镜像加速器
    docker pull registry
    为什么我使用云服务器当仓库呢,因为这个镜像是不支持arm架构的
    接着创建一个目录用来存放上传过来的镜像
    mkdir myregistry
    之后使用下面命令来启动这个镜像
    docker run -d -p 5000:5000 -v /root/myregistry:/var/lib/registry registry
    注意一个问题是,如果你是阿里云的云服务器那么安全组对应的端口一定要打开,有的傻逼总是问我这样的问题
    -d 表示这个容器在后台运行,-p就是端口映射,-v就是把docker容器中的/var/lib/registry目录映射到本地/root/myregistry中,这样一旦容器挂了那么数据还在

    先从别的镜像仓库pull一个镜像

    首先我们从别的仓库pull一个镜像,比如Ubuntu
    docker pull ubuntu
    接着我们有用这个镜像来做测试

    配置树莓派上的docker

    接着我们就是配置树莓派上的docker来使用我们自己搭建的仓库了
    修改下面的文件,如果没有的话自己新建就好
    vim /etc/docker/daemon.json
    加上

    {
        "insecure-registries": ["ip:5000"]
    }
    

    注意json中的字段一定要是insecure-registries,因为默认你搭建的仓库是使用http去访问的,而docker客户端使用的是https去访问,所以就会报下面这个错误
    server gave HTTP response to HTTPS client
    而registry-mirrors就是用来配置https仓库的,比如阿里云的仓库
    之后我们刚pull下来的镜像重命名,让它可以和仓库匹配
    docker tag ubuntu ip:5000/ubuntu
    接着就是push上去
    docker push ip:5000/ubuntu
    push完成之后你可以在云服务器下面这个目录上查看是不是push上去了
    /root/myregistry/docker/registry/v2/repositories/ubuntu
    之后删除本地的镜像
    docker rmi 47.100.210.53:5000/ubuntu
    docker rmi ubuntu
    接着把镜像pull下来
    docker pull 47.100.210.53:5000/ubuntu
    如果一切都没有问题,那么就说明你成功了

    欢迎关注Bboysoul的博客www.bboysoul.com
    Have Fun

    相关文章

      网友评论

        本文标题:docker 简单私有仓库搭建

        本文链接:https://www.haomeiwen.com/subject/cknpkftx.html