使用公共倉庫docker
登錄官方網站:https://hub.docker.com/ 註冊帳號和密碼瀏覽器
在Docker hub中建立一個資源, create respositories, 建立後會提示如何push鏡像到公共倉庫curl
當提示: docker push dai163309889254/zabbix:tagname 時, 使用該命令push鏡像tcp
在Docker主機上面, 把須要推送的鏡像命名爲 dai163309889254/zabbix:latest網站
docker tag zabbix:latest dai163309889254/zabbix:latest
登錄docker hub開始推送url
docker login
# 輸入註冊的docker hub的帳號密碼
# 開始推送鏡像
docker push dai163309889254/zabbix:latest
最後登錄到Docker Hub上面就能夠看到鏡像的信息(鏡像大小,最後一次推送時間等信息)spa
使用私有倉庫rest
docker 已經打包好了一個鏡像倉庫, 直接下載並運行便可code
建立好使用的配置文件server
#cat config.yml version: 0.1 log: fields: service: registry storage: delete: enabled: true cache: blobdescriptor: inmemory filesystem: rootdirectory: /var/lib/registry http: addr: :7000 headers: X-Content-Type-Options: [nosniff] health: storagedriver: enabled: true interval: 10s threshold: 3
運行容器
docker run -d -p 7000:7000 -v /opt/data/registry:/var/lib/registry -v /data/config.yml:/etc/docker/registry/config.yml registry
當容器運行時,會監聽7000端口
使用瀏覽器或者curl訪問tcp的7000端口返回 {} 表示運行成功
修改docker配置解決推送時提示 http: server gave HTTP response to HTTPS client, 由於Docker從1.3.X以後,與docker registry交互默認使用的是https,然而此處搭建的私有倉庫只提供http服務,因此當與私有倉庫交互時就會報上面的錯誤。爲了解決這個問題須要在啓動docker server時增長啓動參數爲默認使用http訪問。修改docker啓動配置文件:
{ "registry-mirrors":["http://hub-mirror.c.163.com"], #鏡像加速 "insecure-registries":["172.16.27.139:7000"] # 添加非ssl倉庫 }
重啓docker服務
service docker restart
修改鏡像名稱爲本地鏡像名稱
docker tag zabbix:latest 172.16.27.139:7000/zabbix:latest
推送鏡像到本地倉庫
docker push 172.16.27.139:7000/zabbix:latest
查看是否存在鏡像
http://172.16.27.139:7000/v2/_catalog