跟我一起學docker(五)--倉庫
來自專欄 IT人故事會
1.Docker Hub
倉庫是集中存放鏡像的地方。
目前Docker官方倉庫維護了一個公共倉庫https://hub.docker.com,其中已經包括15000多個的鏡像。
大部分需求都可以通過在Docker Hub中直接下來鏡像來實現。
登錄
可以通過執行docker login命令來輸入用戶名、密碼和郵箱來完成註冊登錄。
基本操作
用戶無需登錄可以通過 docker search命令來查找官方倉庫中的鏡像,並利用docker pull 下載到本地,可以通過docker push 命令將本地鏡像推送到docker hub。
先tag一下複製一個鏡像,然後把鏡像push到伺服器上
2.創建和使用私有倉庫
使用registry鏡像創建私有倉庫
可以通過docker官方提供的registry鏡像來搭建一套本地私有倉庫。
鏡像地址:https://hub.docker.com/_/registry/
命令:
docker run -eSEARCH_BACKEND=sqlalchemy-eSQLALCHEMY_INDEX_DATABASE=sqlite:////tmp/docker-registry.db-d --name registry -p 5000:5000 registry
-e設定環境變數
-d從後台啟動的方式鏡像啟動
-name 啟動的容器起個名字
-p 暴露埠,容器內部的5000綁定到宿主機的5000埠上。
registry鏡像本身
SEARCH_BACKEND=sqlalchemy默認索引是可以查詢的
參考地址:
https://github.com/docker/docker-registry#search-engine-options
https://hub.docker.com/_/registry/
自動下載並啟動一個registry容器,創建本地的私有倉庫服務。
默認倉庫創建在/tmp/registry目錄下。
上傳到本地的私有倉庫中,
報錯了:http:server gave HTTP response to HTTPS client 後面會告訴你如何解決往下看。
docker啟動參數配置:
環境:centos7解決上邊的問題
配置文件:/lib/systemd/system/docker.service
修改成:
#ExecStart=/usr/bin/dockerd
ExecStart=/usr/bin/dockerd-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --insecure-registry192.168.100.146:5000
(此處默認2375為主管理埠,unix:///var/run/docker.sock用於本地管理,7654是備用的埠)
重啟服務,在啟動一個私有倉庫的容器,然後push到私有倉庫中
參考地址:https://docs.docker.com/engine/admin/configuring/
3.倉庫加速服務
加速下載官方鏡像。
推薦服務:https://dashboard.daocloud.io/
點擊加速器:https://dashboard.daocloud.io/mirror
配置Docker加速器:
下載第三方官方倉庫。
4.倉庫管理
Registry Web UI
用於鏡像的查詢,刪除。
鏡像地址:https://hub.docker.com/r/atcol/docker-registry-ui/
啟動命令:運行下面的命令的時候建議先配置上邊講的加速哦,因為要下載的東西有點多。
docker run -d --nameregistry_ui -p 8080:8080 -e REG1=http://172.17.0.2:5000/v1/atcol/docker-registry-ui
查看埠是否啟用
查看logs
訪問地址:
http://IP地址:8080
推薦閱讀:
※跟我一起學docker(一)--認識
※docker && kubernetes
※跟我一起學docker(三)--鏡像的基本操作