1. 程式人生 > 實用技巧 >8-Docker之倉庫

8-Docker之倉庫

一 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