Docker 核心技術之倉庫
Docker 倉庫簡介
什麽是Docker倉庫
- Docker倉庫就是存放docker鏡像並有docker pull方法下載的雲環境
- Docker倉庫分為公有倉庫和私有倉庫。
- 公有倉庫指Docker Hub(官方)等開放給用戶使用、允許用戶管理鏡像。
- 私有倉庫指由用戶自行搭建的存放鏡像的雲環境。
Docker 私有倉庫搭建
搭建無認證私有倉庫
第一步:在需要搭建倉庫的服務器上安裝docker。
第二步:在服務器上,從docker hub下載registry倉庫
docker pull registry
第三步:在服務器上,啟動倉庫
docker run -d -ti --restart always\
-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 核心技術之倉庫