Docker之镜像仓库

1.  使用docker-registry仓库

    1.  安装docker-registry

        yum install docker-regitsry -y

    2.  查看是否安装成功

        rpm -ql docker-distribution

/etc/docker-distribution/registry/config.yml  主配置文件
/usr/bin/registry  主程序
/usr/lib/systemd/system/docker-distribution.service  启动服务
/usr/share/doc/docker-distribution-2.6.2
/usr/share/doc/docker-distribution-2.6.2/AUTHORS
/usr/share/doc/docker-distribution-2.6.2/CONTRIBUTING.md
/usr/share/doc/docker-distribution-2.6.2/LICENSE
/usr/share/doc/docker-distribution-2.6.2/MAINTAINERS
/usr/share/doc/docker-distribution-2.6.2/README.md
/var/lib/registry  数据目录

    3.  查看配置文件

version: 0.1
log:
  fields:
    service: registry
storage:
    cache:
        layerinfo: inmemory
    filesystem:
        rootdirectory: /var/lib/registry  需要修改
http:
    addr: :5000  端口

    4.  启动服务

        systemctl start docker-distribution.service                

    5.  上传下载镜像

        第一步,下载一个镜像,docker pull busybox

        第二步,修改下载的镜像的tag, docker tag busybox 172.16.252.216:5000/busybox

        第三步,上传到私有库服务器上,docker push 172.16.252.216:5000/busybox

        第四步,修改/etc/docker/daemon.json,{"insecure-registries": ["172.16.252.216:5000"]}

2.  使用harbor镜像仓库  

    1.  下载harbor离线安装包

        到github上搜索harbor,下载指定版本的安装包

        https://github.com/goharbor/harbor/releases

        tar -xf harbor-offline-installer-v1.6.1.tgz

        cd harbor/

        vim harbor.cfg

        hostname = reg.slito.com \harbor的服务地址(ip或者域名)
        ui_url_protocol = http \选择http方式
              harbor_admin_password = 123456 \harbor web访问的密码

              ./prepare  加载配置

              ./install.sh  安装harbor                       

    2.  安装docker(上面已有)

    3.  安装docker-compose

        curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

        chmod +x /usr/local/bin/docker-compose

        启动harbor服务,docker-compose up -d 

    4.   访问harbor

        http://ip,输入admin和密码

        

    5.  上传镜像到harbor仓库

[root@redis_server_194 harbor]# docker login 172.168.1.194
Username: admin
Password: 
Error response from daemon: Get https://172.168.1.194/v2/: dial tcp 172.168.1.194:443: connect: connection refused

          因为使用的是http,需要在docker宿主机上,添加仓库可信,重启docker服务。

{
  "registry-mirrors": ["https://registry.docker-cn.com"],
  "insecure-registries":["172.168.1.194"]
}

          docker tag tomcat:v1 172.168.1.194/library/tomcat:v1

          docker push 172.168.1.194/library/tomcat:v1                      

    6.  查看一下镜像

        

    7.  从harbor下载镜像

        docker pull 172.168.1.194/library/tomcat:v1

    8.  自签HTTPS证书

        touch /etc/pki/CA/index.txt

        echo "01" > /etc/pki/CA/serial

        (umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem)

        openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem

#cd /opt/harbor
#mkdir ssl
#cd ssl
#(umask 077;openssl genrsa -out 域名.key) \生成私钥
#openssl req -new -key reg.slito.com.key -out 域名.csr \ 生成证书请求

#cd /opt/harbor/ssl
#openssl ca -in 域名.csr -out 域名.crt -days 365

#cd /opt/harbor
#docker-compose down -v
#vim harbor.cfg
ui_url_protocol = https
ssl_cert = ./ssl/域名.crt
ssl_cert_key = ./ssl/cert/域名.key
secretkey_path = ./ssl/
#./prepare

#docker-compose down -v

           docker-compose up -d
           其他主机访问harbor,pull/push镜像设置
拷贝reg.slito.com.crt到需要访问harbor仓库的主机上(/etc/docker/certs.d/reg.slito.com/),目标主机不用配置信任就可以直接访问。

 

posted @ 2023-05-22 14:15  奋斗史  阅读(40)  评论(0)    收藏  举报