1. 程式人生 > >Docker 核心技術之倉庫

Docker 核心技術之倉庫

daemon rdquo htpasswd 瀏覽器 trie 當前 point etc 倉庫搭建

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 核心技術之倉庫