Docker Registry網(wǎng)上有很多的
Docker Registry分類:
事實上,如果運維的系統(tǒng)環(huán)境托管在云計算服務(wù)上,比如阿里云,那么用阿里云的 所有的 Docker Private Registry為了幫助我們快速創(chuàng)建私有 問:既然Docker是為了運行程序的,Docker Distribution能否運行在容器中? 容器時代,任何程序都應(yīng)該運行在容器中,除了Kernel和init。而為了能夠做Docker Private Registry,Docker Hub官方直接把
這就是使用容器來運行 使用docker-distribution自建Registry在node02上自建Registry [root@node02 ~]# yum -y install docker-distribution [root@node02 ~]# vim /etc/docker-distribution/registry/config.yml version: 0.1 log: fields: service: registry storage: cache: layerinfo: inmemory filesystem: rootdirectory: /var/lib/registry # 修改此處為一個容量大的磁盤分區(qū)目錄 http: addr: :5000 [root@node02 ~]# systemctl start docker-distribution [root@node02 ~]# ss -antl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 128 *:22 *:* LISTEN 0 100 [::1]:25 [::]:* LISTEN 0 128 [::]:5000 [::]:* LISTEN 0 128 [::]:22 [::]:* 在localhost上使用自建的Registry去上傳鏡像 # 使用insecure-registries參數(shù)添加http支持 [root@localhost ~]# vim /etc/docker/daemon.json "insecure-registries": ["192.168.44.128:5000"] //加入這行 [root@localhost ~]# systemctl restart docker [root@localhostl ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE httpd v0.1 73c44d5dcbc2 25 minutes ago 377MB nginx latest 5d1ba5a6e9d1 3 days ago 390MB alpine latest 7731472c3f2a 7 weeks ago 5.61MB busybox latest b97242f89c8a 7 weeks ago 1.23MB httpd latest 683a7aad17d3 7 weeks ago 138MB centos latest 300e315adb2f 3 months ago 209MB [root@localhost ~]# docker tag nginx:latest 192.168.44.128:5000/nginx:latest [root@localhost ~]# docker push 192.168.44.128:5000/nginx 使用官方鏡像自建Registry[root@node02 ~]# docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry [root@node02 ~]# ss -antl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 128 *:22 *:* LISTEN 0 100 [::1]:25 [::]:* LISTEN 0 128 [::]:5000 [::]:* LISTEN 0 128 [::]:22 [::]:* Harbor無論是使用Docker-distribution去自建倉庫,還是通過官方鏡像跑容器的方式去自建倉庫,通過前面的演示我們可以發(fā)現(xiàn)其是非常的簡陋的,還不如直接使用官方的Docker Hub去管理鏡像來得方便,至少官方的Docker Hub能夠通過web界面來管理鏡像,還能在web界面執(zhí)行搜索,還能基于Dockerfile利用Webhooks和Automated Builds實現(xiàn)自動構(gòu)建鏡像的功能,用戶不需要在本地執(zhí)行docker build,而是把所有build上下文的文件作為一個倉庫推送到github上,讓Docker Hub可以從github上去pull這些文件來完成自動構(gòu)建。 但無論官方的Docker Hub有多強大,它畢竟是在國外,所以速度是最大的瓶頸,我們很多時候是不可能去考慮使用官方的倉庫的,但是上面說的兩種自建倉庫方式又十分簡陋,不便管理,所以后來就出現(xiàn)了一個被 CNCF 組織青睞的項目,其名為Harbor。 Harbor簡介Harbor是由VMWare在Docker Registry的基礎(chǔ)之上進(jìn)行了二次封裝,加進(jìn)去了很多額外程序,而且提供了一個非常漂亮的web界面。
Harbor的功能Feathers:
Docker composeHarbor在物理機上部署是非常難的,而為了簡化Harbor的應(yīng)用,Harbor官方直接把Harbor做成了在容器中運行的應(yīng)用,而且這個容器在Harbor中依賴類似redis、mysql、pgsql等很多存儲系統(tǒng),所以它需要編排很多容器協(xié)同起來工作,因此VMWare Harbor在部署和使用時,需要借助于Docker的單機編排工具(Docker compose)來實現(xiàn)。
Harbor部署[root@localhostl ~]# wget -O /usr/local/bin/docker-compose https://github.com/docker/compose/releases/download/1.28.5/docker-compose-Linux-x86_64 [root@localhostl ~]# chmod +x /usr/local/bin/docker-compose [root@localhostl ~]# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
|
|