Docker核心技术之仓库
一、Docker 倉庫簡介
什么是Docker倉庫
Docker倉庫就是存放docker鏡像并有docker pull方法下載的云環境
Docker倉庫分為公有倉庫和私有倉庫。
公有倉庫指Docker Hub(官方)等開放給用戶使用、允許用戶管理鏡像。 ?? ?
私有倉庫指由用戶自行搭建的存放鏡像的云環境。
二、Docker 私有倉庫搭建
搭建無認證私有倉庫
第一步:在需要搭建倉庫的服務器上安裝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端口訪問)
私有倉庫--上傳、下載鏡像
第一步:利用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。
搭建帶認證的私有倉庫(一)
在服務器上:??
? ? ? ? ? 第一步:刪除先前創建的無認證的倉庫容器 ?? ??? ?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
帶認證的私有倉庫 -上傳、下載鏡像
在本地機器上: ?? ?
? ? ? ? ? 第一步:首先登錄到服務器 ?? ??? ?
? ? ? ? ? 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
三、總結
重點掌握: 私有倉庫搭建(安全)
總結
以上是生活随笔為你收集整理的Docker核心技术之仓库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Docker核心技术之数据管理
- 下一篇: Docker核心技术之Dockerfil