title: Docker部署Registry
date: 2020-03-20 10:29:51
categories: 微服務基礎設施
概述
官方的 Docker Hub 是一個用於管理公共鏡像的地方,我們可以在上面找到我們想要的鏡像,也可以把我們自己的鏡像推送上去。但是,有時候我們的服務器無法訪問互聯網,或者你不希望將自己的鏡像放到公網當中,那麼你就需要 Docker Registry,它可以用來存儲和管理自己的鏡像
安裝
version: '3.1'
services:
registry:
image: registry
restart: always
container_name: registry
ports:
- 5000:5000
volumes:
- /usr/local/docker/registry/data:/var/lib/registry
客戶端配置
請在 /etc/docker/daemon.json
中寫入如下內容(如果文件不存在請新建該文件)(第二個位置爲私服Registry)
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn/"
],
"insecure-registries": [
"192.168.1.3:8100"
]
}
注意,一定要保證該文件符合 json 規範,否則 Docker 將不能啓動。
使用 docker info
可查看信息
測試鏡像上傳
我們以 Nginx 爲例測試鏡像上傳功能
## 拉取一個鏡像
docker pull tomcat
## 查看全部鏡像
docker images
## 標記本地鏡像並指向目標倉庫(ip:port/image_name:tag,該格式爲標記版本號,最後的tomcat爲在倉庫的名字)
docker tag tomcat 192.158.1.3:8100/mytomcat
## 提交鏡像到倉庫
docker push 192.158.1.3:8100/tomcat
查看全部鏡像
curl -XGET http://192.168.1.3:5000/v2/_catalog
測試拉取鏡像
- 再拉取鏡像
docker pull 192.168.1.3:8100/mytomcat
- 服務器鏡像的刪除
docker rmi 192.168.1.3:8100/mytomcat
Registry WebUI
修改 docker-compose.yml
version: '3.1'
services:
registry:
image: registry
restart: always
container_name: registry
ports:
- 8100:5000
volumes:
- /usr/local/docker/registry/data:/var/lib/registry
frontend:
image: konradkleine/docker-registry-frontend:v2
ports:
- 8110: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.1.3
- ENV_DOCKER_REGISTRY_PORT=8100