Docker入门学习(四)仓库管理

仓库主要用于镜像的存储,他是Docker镜像分发、部署的关键

我们可以使用公有仓库Docker Hub,也可以搭建自己的私有仓库来存储我们的镜像。

一.公有仓库
1.创建Docker Hub账户(Web页面创建即可,https://hub.docker.com)
2.登录Docker Hub账户(Web页面登录,Linux: docker login)
3.基本操作:
上传镜像:docker push IMAGE:VERSION [docker push ubuntu1404-baseimage:1.0]
搜索镜像:docker search NAME/MESSAGE/USERNAME... [docker search centos]
下载镜像:docker pull NAME... [docker pull centos] 下载官方提供的CentOS镜像

二.私有仓库
1.安装docker-registry
#docker run -p 5000:5000 registry [使用官方提供的docker-registry镜像来安装][ -e 可以设置配置参数]

    #docker run \
                    -e SETTINGS_FLAVOR=s3  \
                    -e AWS_BUCKET=mybucket  \
                    -e STORAGE_PATH=/registry  \
                    -e AWS_KEY=myawskey  \
                    -e AWS_SECRET=myawssecret  \
                    -e SEARCH_BACKEND=sqlalchemy  \
                    -l 5000:5000  \
    registry                [配置使用Amazon S3存储镜像]

    #yum install docker-registry -y        [使用rpm包安装 ( EPEL \\Fedora Extra Packages for Enterprise Linux )]
    
    启动docker-registry
    #service docker-registry start
    #service docker-registry status
    默认docker-registry会监听5000端口,启动八个工作进程  /etc/docker-registry.yml时设置的

2.docker-registry配置文件
在默认情况下,docker-registry使用config_sample.yml进行各种配置,rpm方式则使用/etc/docker-registry.yml

3.构建安全的私有仓库
由于docker-registry没有提供安全认证服务,所有知道URL的人都可以上传镜像,我们需要认证功能,可以使用Nginx构建一个带有认证功能的私有仓库。
yum install nginx -y
创建/etc/nginx/conf.d/registry.conf文件
创建/etc/nginx/docker-registry.conf文件
用htpasswd -bc /etc/nginx/docker-registry.htpasswd USERNAME PASSWORD创建认证的用户和密码
cat /etc/nginx/docker-registry.htpassed

    【创建自己的CA】
    #openssl genrsa -des3 -out ca-key.pem 2048
    #openssl req new -x509 -days 3600 -key ca-key.pem -out ca.pem
    
    【创建证书】
    #openssl genrsa -des3 -out server-key.pem 2048
    #openssl req -subj '/CN=dev.registry.com' -new -key server-key.pem -out server.csr
    #openssl x509 -req -days 3650 -in server,csr -CA ca.pem -CAKEY ca-key.pem -out server-cert.pem
    
    【删除server key中的passphrase】
    #openssl rsa -in server-key.pem -out server-key.pem

    【安装server-key和server-crt】
    #cp server-cert.pem /etc/ssl/certs/docker-registry.crt
    #cp server-key.pem /etc/ssl/private/docker-registry.key

    【启动nginx】
    #server nginx start


    【客户端安装CA】
    #update-ca-trust enable
    #cp ca.pem /etc/pki/ca-trust/source/anchors/ca.crt
    #update-ca-trust extract
    【重启docker】
    【登录nginx】
    #docker login -u docket -p docker -e db [email protected] https://dev.registry.com
     会在$home/目录下生成一个.dockercfg文件,保存认证信息

     【可以上传自己的镜像了】
    #docker image
    #docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
     标记本地镜像,并将它归入某一仓库
    #docker push *      

你可能感兴趣的:(Docker入门学习(四)仓库管理)