安裝 Docker Registry 私服
概述
官方的 Docker Hub 是一個用于管理公共鏡像的地方竭鞍,我們可以在上面找到我們想要的鏡像板惑,也可以把我們自己的鏡像推送上去。但是笼蛛,有時候我們的服務(wù)器無法訪問互聯(lián)網(wǎng)洒放,或者你不希望將自己的鏡像放到公網(wǎng)當(dāng)中,那么你就需要 Docker Registry滨砍,它可以用來存儲和管理自己的鏡像往湿。
安裝
在之前的 Docker 私有倉庫
章節(jié)中已經(jīng)提到過如何配置和使用容器運行私有倉庫,這里我們使用 docker-compose
來安裝惋戏,配置如下:
version: '3.1'
services:
registry:
image: registry
restart: always
container_name: registry
ports:
- 5000:5000
volumes:
- /usr/local/docker/registry/data:/var/lib/registry
測試
啟動成功后需要測試服務(wù)端是否能夠正常提供服務(wù)领追,有兩種方式:
- 瀏覽器端訪問
- 終端訪問
curl http://ip:5000/v2/
配置 Docker Registry 客戶端
概述
我們的教學(xué)案例使用的是 Ubuntu Server 18.04 LTS 版本,屬于 systemd
系統(tǒng)响逢,需要在 /etc/docker/daemon.json
中增加如下內(nèi)容(如果文件不存在請新建該文件)
{
"registry-mirrors": [
"https://registry.docker-cn.com"
],
"insecure-registries": [
"ip:5000"
]
}
注意:該文件必須符合 json 規(guī)范绒窑,否則 Docker 將不能啟動。
之后重新啟動服務(wù)舔亭。
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
檢查客戶端配置是否生效
使用 docker info
命令手動檢查些膨,如果從配置中看到如下內(nèi)容,說明配置成功(192.168.75.133 為教學(xué)案例 IP)
Insecure Registries:
192.168.75.133:5000
127.0.0.0/8
測試鏡像上傳
我們以 Nginx 為例測試鏡像上傳功能
## 拉取一個鏡像
docker pull nginx
## 查看全部鏡像
docker images
## 標(biāo)記本地鏡像并指向目標(biāo)倉庫(ip:port/image_name:tag钦铺,該格式為標(biāo)記版本號)
docker tag nginx 192.168.75.133:5000/nginx
## 提交鏡像到倉庫
docker push 192.168.75.133:5000/nginx
查看全部鏡像
curl -XGET http://192.168.75.133:5000/v2/_catalog
查看指定鏡像
以 Nginx 為例订雾,查看已提交的列表
curl -XGET http://192.168.75.133:5000/v2/nginx/tags/list
測試拉取鏡像
- 先刪除鏡像
docker rmi nginx
docker rmi 192.168.75.133:5000/nginx
- 再拉取鏡像
docker pull 192.168.75.133:5000/nginx
部署 Docker Registry WebUI
私服安裝成功后就可以使用 docker 命令行工具對 registry 做各種操作了。然而不太方便的地方是不能直觀的查看 registry 中的資源情況矛洞。如果可以使用 UI 工具管理鏡像就更好了洼哎。這里介紹兩個 Docker Registry WebUI 工具
兩個工具的功能和界面都差不多,我們以 docker-registry-fontend
為例講解
docker-registry-frontend
我們使用 docker-compose 來安裝和運行,docker-compose.yml
配置如下:
version: '3.1'
services:
frontend:
image: konradkleine/docker-registry-frontend:v2
ports:
- 8080:80
volumes:
- ./certs/frontend.crt:/etc/apache2/server.crt:ro
- ./certs/frontend.key:/etc/apache2/server.key:ro
environment:
- ENV_DOCKER_REGISTRY_HOST=192.168.75.133
- ENV_DOCKER_REGISTRY_PORT=5000
注意:請將配置文件中的主機和端口換成自己倉庫的地址
運行成功后在瀏覽器訪問:http://192.168.75.133:8080/home