一、前言
Docker官方鏡像倉庫 訪問速度很慢,Docker Registry允許搭建我們自己的鏡像倉庫,為實現鏡像拉取、推送提供便利。
二、安裝與啟動
1、創建目錄
mkdir /usr/local/docker
cd /usr/local/docker
2、編輯docker-compose.yml
version: "3.7"
services:
registry:
restart: always
image: registry
container_name: registry
ports:
- 5000:5000
volumes:
- /usr/local/docker/registry-data:/var/lib/registry
- image : 容器依據的鏡像為registry
- container_name : 容器名稱
- ports : 端口映射
- volumes : 映射數據卷
3、啟動容器
docker-compose up -d
三、驗證是否啟動成功
瀏覽器訪問 http://<host address>:5000/v2/
,正常情況會返回空的json對象。
四、Registry測試使用
1、先從官方鏡像拉取ubuntu
docker pull ubuntu
2、為鏡像打上tag,創建自己的鏡像
docker tag ubuntu 192.168.172.143:5000/ubuntu
命名方式:ip:port/image_name:version
表示一會推送到鏡像服務器時,使用這個ip、端口配置
3、查看剛才的鏡像
docker images
4、配置鏡像服務器地址
vi /etc/docker/daemon.json
內容如下:
{
"registry-mirrors": [
"<your acccelerate address>"
],
"insecure-registries": [
"192.168.172.143:5000"
]
}
重啟服務:
service docker restart
第一個為阿里雲容器鏡像加速地址,第二個為新增的自己的鏡像服務器地址。
5、驗證配置
docker info
看Insecure Registries
節點是否多了一個配置。
6、推送鏡像
docker push 192.168.172.143:5000/ubuntu
7、查看鏡像
瀏覽器查看: http://192.168.172.143:5000/v2/_catalog
或
終端訪問: curl -XGET http://192.168.172.143:5000/v2/_catalog
8、拉取鏡像
先刪除本地鏡像
docker rmi ubuntu 192.168.172.143:5000/ubuntu
拉取
docker pull 192.168.172.143:5000/ubuntu
五、Registry圖形界面
docker registry本身不提供圖形界面,為方便操作,需要安裝第三方的圖形界面 :Docker-Registry-Frontend
1、安裝
修改docker-compose.yml
version: "3.7"
services:
registry:
restart: always
image: registry
container_name: registry
ports:
- 5000:5000
volumes:
- /usr/local/docker/registry-data:/var/lib/registry
registry-ui:
restart: always
image: konradkleine/docker-registry-frontend:v2
container_name: registry-ui
environment:
ENV_DOCKER_REGISTRY_HOST: 192.168.172.143
ENV_DOCKER_REGISTRY_PORT: 5000
ports:
- 8080:80
volumes:
- /usr/local/docker/registry/server.crt:/etc/apache2/server.crt:ro
- /usr/local/docker/registry-ui/server.key:/etc/apache2/server.key:ro
刪除已經存在的容器
docker rm $(docker ps -aq)
- ENV_DOCKER_REGISTRY_HOST : 鏡像服務器地址
- ENV_DOCKER_REGISTRY_PORT : 鏡像服務器端口
2、重新啟動
docker-compose up -d
3、訪問
瀏覽器訪問:http://192.168.172.143:8080/
即可
4、測試
推送
docker push 192.168.172.143:5000/ubuntu
修改tag再次推送
docker tag 192.168.172.143:5000/ubuntu 192.168.172.143:5000/ubuntu:8.0.0
docker push 192.168.172.143:5000/ubuntu:8.0.0
訪問: http://192.168.172.143:8080/
可以看到兩個版本的ubuntu.