0x00 環(huán)境
Ubuntu 18.04
docker-ce 18.06
0x01 pull&run registry
官方拉registry鏡像運行
docker run -dt -p PORT:5000 --restart=always --name NAME registry
#--restart=always 每次啟動docker啟動該容器
或者掛在本地目錄到容器目錄
docker run -dt -p PORT:5000 --restart=always -v /opt/data/registry:/var/lib/registry --name NAME registry
進入registry
docker exec -it CONTAINERID sh
0x02 非本機連接registry
由于現(xiàn)在的docker默認https,運行registry容器之后只能通過本地ip 127.0.0.1:5000上傳鏡像,如果需要在局域網(wǎng)內(nèi)進行pull和push的話需要在進行pull和push的機器上設(shè)置.
證書比較麻煩,選擇增加非安全連接白名單
sudo chmod 777 /etc/docker/daemon.json
vim /etc/docker/daemon.json
在{}內(nèi)添加
"insecure-registries":["IP:PORT"]
注意:如果之前該文件有內(nèi)容的話,比如aliyun的加速地址,那么記得在后面添加逗號
保存退出
sudo systemctl daemon-reload #reload daemon
sudo systemctl restart docker #restart docker
0x03 test
拉取一個鏡像,以hello-world示例
docker pull hello-world #拉取hello-world鏡像
docker tag hello-world:latest IP(or 127.0.0.1):PORT/NAME:VERSION
#給鏡像貼上標簽
#IP(or 127.0.0.1):PORT是必須的,用于docker識別私有倉庫
#NAME:VERSION為一般格式
push標記鏡像
docker push IP(or 127.0.0.1):PORT/NAME:VERSION
#IP(or 127.0.0.1):PORT/NAME:VERSION 之前寫的什么就用什么
用curl查看registry中的鏡像
curl IP(or 127.0.0.1):PORT/v2/_catalog
pull之前push的鏡像
docker pull IP(or 127.0.0.1):PORT/NAME:VERSION