8-Docker之倉庫
阿新 • • 發佈:2020-08-26
一 Docker 倉庫簡介
1.1 什麼是Docker倉庫
•Docker倉庫就是存放docker映象並有docker pull方法下載的雲環境
•Docker倉庫分為公有倉庫和私有倉庫。
公有倉庫指Docker Hub(官方)等開放給使用者使用、允許使用者管理映象。
私有倉庫指由使用者自行搭建的存放映象的雲環境。
二 Docker 私有倉庫搭建
2.1 搭建無認證私有倉庫
# 第一步:在需要搭建倉庫的伺服器上安裝docker。 # 第二步:在伺服器上,從docker hub下載registry倉庫 docker pull registry # 第三步:在伺服器上,啟動倉庫 docker run -d -ti --restart always\ --name my-registry\ -p 8000:5000\ -v /my-registry/registry:/var/lib/registry\ registry # 注意:registry內部對外開放埠是5000。預設情況下,會映象存放於容器內的/var/lib/registry(官網Dockerfile中檢視)目錄下,這樣如果容器被刪除,則存放於容器中的映象也會丟失。 # 本地利用curl 伺服器IP:8000/v2/_catalog 檢視當前倉庫中的存放的映象列表。(注意開啟8000埠訪問)
2.2 私有倉庫–上傳、下載映象
# 第一步:利用docker tag重新命名需要上傳的映象
docker tag IMAGE 伺服器IP:埠/IMAGE_NAME
# 第二步:利用docker push上傳剛剛重新命名的映象
docker push 伺服器IP:埠/centos
# 注意:
必須重新命名為伺服器IP:埠/IMAGE_NAME
如果push出現了類似https的錯誤那麼需要往配置檔案/etc/docker/daemon.json裡新增:”insecure-registries”:[“伺服器IP:埠”]
然後重啟docker。
2.3 搭建帶認證的私有倉庫(一)
在伺服器上: # 第一步:刪除先前建立的無認證的倉庫容器 docker rm -f my-registry # 第二步:建立存放認證使用者名稱和密碼的檔案: mkdir /my-registry/auth -p # 第三步:建立密碼驗證檔案。注意將將USERNAME和PASSWORD替換為設定的使用者名稱和密碼 docker run --entrypoint htpasswd registry -Bbn USERNAME PASSWORD > /my-registry/auth/htpasswd # 第四步:重新啟動倉庫映象 docker run -d -p 8000:5000 --restart=always --name docker-registry \ -v /my-registry/registry:/var/lib/registry \ -v /my-registry/auth:/auth \ -e "REGISTRY_AUTH=htpasswd" \ -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \ -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \ registry
2.4 帶認證的私有倉庫 -上傳、下載映象
在本地機器上:
# 第一步:首先登入到伺服器
docker login -u username -p password 47.94.153.230:8000
# 第二步:然後執行pull或者push命令
# 第三步:操作完畢後,可以退出登入
docker logout 47.94.153.230:8000
# 這是如果想檢視倉庫中已有的映象,那麼需要進行http驗證才可以。可以直接藉助瀏覽器訪問47.94.153.230:8000/v2/_catalog就可以訪問了
# 注意這裡:47.94.153.230指伺服器IP