阅读 24

搭建docker 私有仓库

为了提高镜像下载速度,验证自己代码,所以搭建私有仓库

环境准备

用VirtualBox安装了两台centos机器,ip和命名如下

名称 IP
Docker 192.168.0.190
Docker-registry 192.168.0.91

docker部署registry容器

  1. 在centos上安装docker
     https://docs.docker.com/install/linux/docker-ce/centos/
    复制代码
  2. 拉取registry镜像
    docker pull registry
    复制代码
  3. 启动registry容器
    • -p 指定端口容器端口和主机端口映射
    • -v 挂载主机目录到容器内目录
    • --restart=always docker重启时,容器能自动启动
    • --name 指定容器名称
    docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry --restart=always --name registry registry
    复制代码
  4. 验证registry容器启动成功
    http://192.168.0.91:5000/v2/_catalog
    {"repositories":[]}
    复制代码

上传镜像

  1. 修改http请求push镜像的问题
    vim /etc/docker/daemon.json
    {
      "insecure-registries": [
        "192.168.0.91:5000"
      ]
    }
    
    # 重启docker
    systemctl restart docker
    复制代码
  2. 拉取实验镜像
    docker pull busybox
    复制代码
  3. 打标签
    docker tag busybox 192.168.0.91:5000/busybox
    复制代码
  4. 上传镜像
    docker push 192.168.0.91:5000/busybox
    复制代码
  5. 验证镜像已上传
    http://192.168.0.91:5000/v2/_catalog
    {"repositories":["busybox"]}
    复制代码

下载镜像

  1. 在192.168.0.190上拉取镜像
    docker pull 192.168.0.91:5000/busybox
    
    提示错误
    Using default tag: latest
    Error response from daemon: Get https://192.168.0.91:5000/v2/: http: server gave HTTP response to HTTPS client
    复制代码
  2. 添加安全白名单
    vim /etc/docker/daemon.json
    {
      "insecure-registries": [
        "192.168.0.91:5000"
      ]
    }
    
    # 重启docker
    systemctl restart docker
    复制代码
  3. 在192.168.0.190上重新拉取镜像
    [root@localhost ~]# docker pull 192.168.0.91:5000/busybox
    Using default tag: latest
    latest: Pulling from busybox
    7c9d20b9b6cd: Pull complete 
    Digest: sha256:dd97a3fe6d721c5cf03abac0f50e2848dc583f7c4e41bf39102ceb42edfd1808
    Status: Downloaded newer image for 192.168.0.91:5000/busybox:latest
    192.168.0.91:5000/busybox:latest
    复制代码
    [root@localhost ~]# docker images
    REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
    192.168.0.91:5000/busybox   latest              19485c79a9bb        5 weeks ago         1.22MB
    
    复制代码

到这里私有仓库就搭建完成了