这里测试的机器为ubuntu22.04
一、环境安装
docker
安装就不赘述了
先升级,再从官方仓库安装docker compose
language-bash1 2 3
| 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文件
language-yaml1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| 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
目录,执行
language-bash1
| docker-compose -f ./docker-compose.yaml up
|
三、访问
通过http://your_server_ip:8090
访问UI
四、上传和拉取镜像
打开vi /etc/docker/daemon.json
添加以下内容:
language-txt1
| "insecure-registries":["http://your_server_ip:8090"]
|
这样docker才会信任你的私有仓库。
假设你的服务器ip为192.168.750.101
,port为8090
推送镜像到私有镜像服务必须先tag
,步骤如下:
- 重新tag本地镜像,名称前缀为私有仓库的地址:
192.168.150.101:8090/
language-dart1
| docker tag nginx:latest 192.168.150.101:8090/nginx:1.0
|
- 推送镜像
language-dart1
| docker push 192.168.150.101:8090/nginx:1.0
|
- 拉取镜像
language-dart1
| docker pull 192.168.150.101:8090/nginx:1.0
|