美文网首页
centos7搭建docker本地regsitry

centos7搭建docker本地regsitry

作者: 撸大师 | 来源:发表于2016-08-17 18:24 被阅读3105次

    参考:Docker部署私有仓库

    一、环境准备

    1. ip

    role ip
    docker仓库机 1.1.1.100
    docker客户机 1.1.1.101

    2. 关闭防火墙

    systemctl stop firewalld.service
    systemctl disable firewalld.service
    

    3. 关闭本地selinux防火墙

    sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/sysconfig/selinux 
    init 6
    

    二、搭建

    1. 搭建仓库 registry

    docker pull regsity
    

    2. 基于私有仓库镜像运行容器

    docker run -d --name siyou --restart always -p 5000:5000 -v /data/docker/registry:/tmp/registry docker.io/registry 
    

    可能会报错,iptables failed: iptables --wait -t nat -A DOCKER ...
    添加iptables配置:

    # Generated by iptables-save v1.4.21 on Thu Nov 30 00:04:59 2017
    *filter
    :INPUT ACCEPT [465:42131]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [369:72564]
    :DOCKER - [0:0]
    -A FORWARD -o docker0 -j DOCKER
    -A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    -A FORWARD -i docker0 ! -o docker0 -j ACCEPT
    -A FORWARD -i docker0 -o docker0 -j ACCEPT
    COMMIT
    # Completed on Thu Nov 30 00:04:59 2017
    # Generated by iptables-save v1.4.21 on Thu Nov 30 00:04:59 2017
    *nat
    :PREROUTING ACCEPT [9:1871]
    :INPUT ACCEPT [1:255]
    :OUTPUT ACCEPT [1:252]
    :POSTROUTING ACCEPT [1:252]
    :DOCKER - [0:0]
    -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
    -A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
    -A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
    COMMIT
    # Completed on Thu Nov 30 00:04:59 2017
    

    3. 访问私有仓库

    # 网上都用这个curl 127.0.0.1:5000/v1/search,但是报404 page not found,后查证是v1版本的api查看方式,我们现在的版本是v2,所以用如下方法查看:

    >curl -X GET http://1.1.1.100:5000/v2/_catalog
    {"repositories":[]}   #私有仓库为空,没有提交新镜像到仓库中
    

    4. 为基础镜像打个标签

    # 根据 images id 建立 tag

    docker tag a374fd62f97f 1.1.1.100:5000/centos
    

    5. 改Docker配置文件制定私有仓库url

    vim /etc/sysconfig/docker
    OPTIONS='--selinux-enabled --insecure-registry 1.1.1.100:5000'
    systemctl restart docker
    

    6. 提交镜像到本地私有仓库中

    docker push 1.1.1.100:5000/centos
    or
    for i in  `docker images|grep 1.1.1.100|awk '{print $1}'`;do docker push $i;done
    

    7. 查看私有仓库是否存在对应的镜像

    root@localhost ~
    > curl -X GET http://1.1.1.100:5000/v2/_catalog
    {"repositories":["centos","nginx"]}
    > curl -X GET http://1.1.1.100:5000/v2/centos/tags/list
    {"name":"centos","tags":["latest"]}
    

    三、在docker客户机验证

    1. 修改Docker配置文件

    vim /etc/sysconfig/docker
    OPTIONS='--selinux-enabled --insecure-registry 1.1.1.100:5000'
    systemctl restart docker
    

    2. 从私有仓库中下载已有的镜像

    docker pull 1.1.1.100:5000/centos
    Using default tag: latest
    Trying to pull repository 1.1.1.100:5000/centos ... 
    latest: Pulling from 1.1.1.100:5000/centos
    Digest: sha256:fd9058a6149809b2f4725bb4461294ceebb59e587435f3509c2c8dcc9ee1d5b4
    Status: Downloaded newer image for 1.1.1.100:5000/centos:latest
    

    查看

    > docker images
    REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
    1.1.1.100:5000/centos   latest              a374fd62f97f        11 weeks ago        194.5 MB
    docker.io/centos        6.8                 a374fd62f97f        11 weeks ago        194.5 MB
    

    运行

    > docker run -itd 1.1.1.100:5000/centos
    56c2da2c1e9e70146b71a68f829e89756664f1e2a67abf369baac524c65deb25
    > docker ps 
    CONTAINER ID        IMAGE                   COMMAND             CREATED              STATUS              PORTS               NAMES
    56c2da2c1e9e        1.1.1.100:5000/centos   "/bin/bash"         About a minute ago   Up About a minute                       thirsty_elion
    
    • 自此,docker本地仓库搭建完成。。。

    相关文章

      网友评论

          本文标题:centos7搭建docker本地regsitry

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