Docker--------registry私有仓库搭建 [ Http ]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker--------registry私有仓库搭建 [ Http ]相关的知识,希望对你有一定的参考价值。

1. 背景

    docker中要使用镜像,一般会从本地、docker Hup公共仓库和其它第三方公共仓库中下载镜像,一般出于安全和外网(墙)资源下载速率的原因考虑企业级上不会轻易使用。那么有没有一种办法可以存储自己的镜像的仓库呢? ----> 企业级环境中搭建自己的私有仓库。


2. 私有仓库有优势:

    一、节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可;

    二、提供镜像资源利用,针对于公司内部使用的镜像,推送到本地的私有仓库中,以供公司内部相关人员使用。


3. 环境:

[[email protected] ~]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 
[[email protected] ~]# uname -r
3.10.0-327.36.3.el7.x86_64


4. 服务器Ip地址

    192.168.60.150


5. 安装:

 * 安装docker

[[email protected] ~]# yum install docker


 * 启动docker服务

[[email protected] ~]# systemctl start docker


 * 设置docker服务开机启动

[[email protected] ~]# systemctl enable docker


 * 拉取 registry镜像,例如在daocloud.io/registry这个私有镜像仓库

[[email protected] ~]# docker pull daocloud.io/registry


 * 创建本地镜像存储目录

[[email protected] ~]# mkdir /data/local_docker_registry -p


 * 运行容器,设置容器名称为local_docker_registry, 挂在镜像内docker镜像仓库/var/lib/registry 至本地/data/local_docker_registry目录,并曝光5000端口, --restart=always让其跟随docker启动时启动

[[email protected] ~]# docker run --name local_docker_registry --restart=always -d -v /data/local_docker_registry:/var/lib/registry -p 5000:5000 daocloud.io/registry


 * 测试 [ 有返回就表示成功 ]

[[email protected] ~]# curl 192.168.60.150:5000/v2
<a href="/v2/">Moved Permanently</a>.


6. 上传镜像至私有仓库测试

 * 编写dockerfile文件

nginx 
# Version 1.0.1
# Author lisea
# Url https://lisea.cn
# Base imgae
FROM centos

# Maintainer
MAINTAINER lisea [email protected]

# Commands
RUN rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
RUN yum install nginx -y
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
RUN echo "this is test nginx image" > /usr/share/nginx/html/index.html
EXPOSE 80
CMD ["nginx"]


 * 通过Dockerfile构建一个新镜像, 直接指明registry和标签

[[email protected] nginx]# docker build -t 192.168.60.150:5000/nginx:1.0.1 .


 * push 上传镜像到私有仓库

[[email protected] nginx]# docker push 192.168.60.150:5000/nginx:1.0.1


 * 查看镜像是否上传成功

[[email protected] nginx]# curl 192.168.60.150:5000/v2/_catalog
{"repositories":["nginx"]}

 

 * 其它服务器使用此镜像

[[email protected] nginx]# docker pull 192.168.60.150:5000/nginx:1.0.1


7. 相关问题

  * 可能会出现无法push镜像到私有仓库的问题。这是因为我们启动的registry服务不是安全可信赖的。     解决:

   1. 需要修改docker的配置文件 /etc/sysconfig/docker-network,在添加下面的内容,

    DOCKER_NETWORK_OPTIONS="--insecure-registry 192.168.60.150:5000"

      2. 重启docker

[[email protected] nginx]# systemctl restart docker



8. 总结



以需求驱动技术,技术本身没有优略之分,只有业务之分。


本文出自 “sea” 博客,请务必保留此出处http://lisea.blog.51cto.com/5491873/1934617

以上是关于Docker--------registry私有仓库搭建 [ Http ]的主要内容,如果未能解决你的问题,请参考以下文章

如何远程访问私有 docker-registry?

在CentOS 6上搭建私有的Docker Registry

私有 Docker Registry 删除镜像

在 ubuntu 搭建 docker registry 私有仓库

部署docker-registry私有仓库

docker registry (私有仓库)