docker學習-構建本地Registry

保存和分發鏡像的最直接的方法就是使用Docker H u b,它是Docker公司維護的公共Regsitry,用戶能夠將本身的鏡像保存到Docker H u b 免費的repository中。若是不但願別人訪問本身的鏡像,也能夠購買私有repository.
通常咱們可使用Docker H u b上傳和下載鏡像,雖然十分方便,可是仍是有些限制,好比:
一、須要外網鏈接,並且上傳和下載速度慢
二、上傳到Docker H u b 的鏡像任何人都可以訪問,雖然能夠用私人repositroy,但不是免費的
三、由於安全緣由不少組織不容許將鏡像放到外網docker

解決方法是單間本地的Registry。
Docker已經將Registry開源了,同時在Docker H u b上也有官方的鏡像Registry。
咱們能夠在Docker中運行本身的Registry安全

使用dockerfile構建httpd

在使用倉庫以前,首先咱們構建一個httpd鏡像,保存到本地中
首先建立dockerfile目錄和建立dokcerfile文件curl

cd ~
mkdir dokcerfile 
cd dockerfile
touch dockerfie

按照以下編輯dockerfile
docker學習-構建本地Registry
而後構建http鏡像ide

docker build -t httpd:v11 -f dockerfile /root/dockerfile

以下所示,構建成功
docker學習-構建本地Registry
檢查鏡像學習

docker images

docker學習-構建本地Registry

啓動registry容器

首先在根目錄下建立/myregistry目錄用於存放鏡像數據
本次使用鏡像是registry:2ui

cd /
mkdir /myregistry

使用以下命令建立registry容器url

docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry:2

docker學習-構建本地Registry
說明:
一、-d 後臺啓動容器
二、-p 將容器的5000端口映射到Host的5000端口。5000是registry服務端口
三、-v 將容器的/var/lib/regsitry目錄映射給Host的/myregistry,用於存放鏡像數據code

經過docker tag重命名鏡像,使之與registry匹配,以下所示:blog

docker tag yangchao/httpd:v1 127.0.0.1:5000/yangchao/httpd:v1

將httpd:v11更改成Registry要求的格式,格式以下:dockerfile

只有Docker Hub上的鏡像能夠省略registry-host:[port]
按照以下方式,經過docker tag重命名鏡像,使之與registry匹配

docker tag httpd:v11 127.0.0.1:5000/yangchao/httpd:v11

使用dokcer image命令檢查鏡像
docker學習-構建本地Registry

而後將yangchao/httpd:v11上傳到Registry

docker push 127.0.0.1:5000/yangchao/httpd:v11

docker學習-構建本地Registry
而後查看Registry中的鏡像

curl 127.0.0.1:5000/v2/_catalog

docker學習-構建本地Registry
能夠在/myregistry目錄中查看相應的鏡像
docker學習-構建本地Registry至此本地registry就建立完畢

相關文章
相關標籤/搜索