Docker私有仓库搭建

起因

众所周知的原因,我们访问 hub.docker.com 很慢,需要使用加速镜像,具体如何使用,请看官自行搜索,这里不做重点说明,这里要说的是另外一种加速的方法:搭建私有镜像。

环境说明

受制于开发环境,我在 Windows Server 2016 Standard 中构建了很多 Images, 计划在hyper-v中创建debian系统(纯命令版本,无GUI),在debian中搭建私有的docker镜像仓库,然后将Host(Windows Server 2016 Standard)中构建的镜像上传到 debian 中, debian中仓库中存放的镜像路径使用-v操作映射到debian系统的 root/registry 路径下。

  1. Windows Server 2016 Standard 安装(略)
  2. Hyper-v 安装(略)
  3. 在hyper-v中安装debian并配置
    1. 首先在hyper-v中新建一个虚拟网络交换机,类型选“外部”,选中物理网卡点确定;
      虚拟网络交换机
    2. 下载最小的debian镜像(ISO文件),大概300多MB,设置启动镜像后,还要在hyper-v中选中虚拟机,在设置里面将安全启动项勾掉
      安全启动勾掉
    3. 安装debian系统(略)
    4. 配置sudo
      由于安装的是网络版镜像,安装好的系统没有sudo,执行sudo command的时候会报sudo: command not found的错误,解决方案如下:
      1. 切换到root用户,输入root口令(安装debian的时候设置的)

        $ su
      2. 更新软件源并安装sudo

        $ apt update
        $ apt install sudo
      3. 执行visudo修改sudoers(推荐),还有一种方式是 vi /etc/sudoers(不推荐)

        ...
        # User privilege specification
        root       ALL=(ALL) ALL
        youruser   ALL=(ALL) ALL
        ...
      4. 不需要重启即可使用。

    5. 设置debian系统网卡

      $ sudo vi /etc/network/interfaces

      将动态获取地址注释掉,用如下代码代替

      ...
      # The primary network interface
      # iface eth0 inet dhcp
      iface eth0 inet static
      address 192.168.0.90
      netmask 255.255.255.0
      gateway 192.168.0.1

      重新启动

      $ sudo reboot
  4. debian中安装docker
    1. 我用的是一键安装脚本

      $ curl -fsSL get.docker.com -o get-docker.sh
      $ sudo sh get-docker.sh
    2. 测试安装

      $ sudo docker info

开始搭建私有仓库(registry)

  1. 创建并运行registry
    有了docker,一切都变得梦幻般美好,一个命令:

    $ sudo docker run -d -p 5000:5000 -v /root/registry:/var/lib/registry  --restart always registry:2
    解释一下参数:
    • -d 后台运行;
    • -p 5000:5000 端口映射 主机的5000端口(debian系统):容器的5000端口
    • -v 路径map,将主机的 /root/registry 路径 map 到容器的 /var/lib/registry
    • --restart always ,恩,这个解释起来优点麻烦,在我这里的意思是开机启动,官方的解释见Start containers automatically

    这样,私有 registry 就运行起来了,且支持开机启动。

  2. 在 windows server standard 中设置虚拟机为自动启动
    虚拟机自动启动
    这样当物理机(windows server 2016)启动时,debian虚拟机会自动启动,debian系统内的docker 仓库也会自动启动
  3. 使用
    1. tag 镜像

      PS > docker tag windowsservercore-demo 192.168.0.90:5000/windowsserver-core-demo
    2. 上传镜像
      1. 先要修改配置文件daemon.json
        windows下的路径是 c:/programdata/docker/config/daemon.json, linux下的路径 /etc/docker/daemon.json
        在配置文件中增加节点:

        {
            "insecure-registries": ["192.168.0.90:5000"]
        }
      2. restart docker

        PS > restart-service *docker*
      3. 上传

        PS > docker push 192.168.0.90:5000/windowsserver-core-demo
    3. 用 curl 查看仓库中的镜像

      PS > curl 192.168.0.90:5000/v2/_catalog

      或者直接用网页打开 http://192.168.0.90:5000/v2/_catalog ,结果是一样的

    4. 下载镜像(局域网内可用)

      PS > docker pull 192.168.0.90:5000/windowsserver-core-demo

参考资料

  • https://yeasy.gitbooks.io/docker_practice/content/repository/local_repo.html
  • http://www.cnblogs.com/CloudMan6/p/6902325.html
  • https://docs.docker.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值