这里测试的机器为ubuntu22.04
一、环境安装
docker
安装就不赘述了
先升级,再从官方仓库安装docker compose
apt update
apt upgrade
apt install docker-compose
二、部署私有仓库UI
Docker
提供了一个叫registry
的镜像,给大家搭建私有仓库,但是没有可视化界面。
https://hub.docker.com/r/joxit/docker-registry-ui
这个镜像在registry
基础之上,开发了网页可视化。
1. 创建一个文件夹Docker_Registry
2. 进入其中继续创建registry-data
文件夹和docker-compose.yaml
文件
3. yaml文件
version: '3.8'
services:
registry-ui:
image: joxit/docker-registry-ui:main
restart: always
ports:
- 8090:80 #这里8090改成可视化网页服务端口
environment:
- SINGLE_REGISTRY=true
- REGISTRY_TITLE=Xiamu Docker Registry UI #这里可以修改标题
- DELETE_IMAGES=true
- SHOW_CONTENT_DIGEST=true
- NGINX_PROXY_PASS_URL=http://registry-server:5000
- SHOW_CATALOG_NB_TAGS=true
- CATALOG_MIN_BRANCHES=1
- CATALOG_MAX_BRANCHES=1
- TAGLIST_PAGE_SIZE=100
- REGISTRY_SECURED=false
- CATALOG_ELEMENTS_LIMIT=1000
container_name: registry-ui
depends_on:
- registry-server
registry-server:
image: registry:2.8.2
restart: always
environment:
REGISTRY_HTTP_HEADERS_Access-Control-Origin: '[http://your_server_ip]' # 这里改成你的云服务ip,启用CORS
REGISTRY_HTTP_HEADERS_Access-Control-Allow-Methods: '[HEAD,GET,OPTIONS,DELETE]'
REGISTRY_HTTP_HEADERS_Access-Control-Credentials: '[true]'
REGISTRY_HTTP_HEADERS_Access-Control-Allow-Headers: '[Authorization,Accept,Cache-Control]'
REGISTRY_HTTP_HEADERS_Access-Control-Expose-Headers: '[Docker-Content-Digest]'
REGISTRY_STORAGE_DELETE_ENABLED: 'true'
volumes:
- ./registry-data:/var/lib/registry
container_name: registry-server
4. 部署
进入Docker_Registry
目录,执行
docker-compose -f ./docker-compose.yaml up
三、访问
通过http://your_server_ip:8090
访问UI
四、上传和拉取镜像
打开vi /etc/docker/daemon.json
添加以下内容:
"insecure-registries":["http://your_server_ip:8090"]
这样docker才会信任你的私有仓库。
假设你的服务器ip为192.168.750.101
,port为8090
推送镜像到私有镜像服务必须先tag
,步骤如下:
- 重新tag本地镜像,名称前缀为私有仓库的地址:
192.168.150.101:8090/
docker tag nginx:latest 192.168.150.101:8090/nginx:1.0
- 推送镜像
docker push 192.168.150.101:8090/nginx:1.0
- 拉取镜像
docker pull 192.168.150.101:8090/nginx:1.0