Docker6️⃣私有镜像仓库

1、搭建

基于 DockerHub 提供的 DockerRegistry 来实现。

以下 2 种搭建方式

  1. 简化版,没有 UI 界面。
  2. 带 UI 界面(建议

1.1、简化版

具备仓库管理的完整功能,没有 UI 界面。

  • -v:将容器的 /var/lib/registry 目录,挂载到数据卷 registry-data(私有镜像仓库的数据存放目录)

  • 访问 http://YourIp:5000/v2/_catalog,查看当前私有镜像仓库中的镜像。

    docker run -d \
        --restart=always \
        --name registry	\
        -p 5000:5000 \
        -v registry-data:/var/lib/registry \
        registry
    

1.2、UI 界面版(❗)

基于 DockerCompose,部署带 UI 界面的 DockerRegistry。

1.2.1、配置 Docker 信任地址

服务器采用 http 协议,默认不被 Docker 信任。

  1. 添加配置内容

    vi /etc/docker/daemon.json
    # 添加内容
    "insecure-registries":["http://服务器IP:8080"]
    
  2. 重启:daemon 和 Docker

    systemctl daemon-reload
    systemctl restart docker
    

1.2.2、Docker Compose

新建空文件夹,用于创建私有镜像仓库

切换到该文件夹

  1. 编写 docker-compose.yml

    version: '3.0'
    services:
      registry:
        image: registry
        volumes:
          - ./registry-data:/var/lib/registry
      ui:
        image: joxit/docker-registry-ui:static
        ports:
          - 8080:80
        environment:
          - REGISTRY_TITLE=仓库名
          - REGISTRY_URL=http://registry:5000
        depends_on:
          - registry
    
  2. 部署

    docker-compose up -d
    
  3. 访问私有仓库:地址为 宿主机 IP:映射端口号

    image-20220601163026702

2、推拉镜像

2.1、步骤

  1. 重命名镜像:前缀为私有仓库的地址(宿主机 IP:映射端口号

    docker tag 原镜像名 前缀/镜像名 
    
  2. 推拉镜像

    docker push 前缀/镜像名
    docker pull 前缀/镜像名
    

2.2、case

以 Nginx 为例

2.2.1、推送

  1. 重命名:从镜像详情可见,是在原镜像基础上拷贝并重命名。

    image-20220601164951688

  2. 推送:若报错,检查 http 信任地址,镜像命名。

    • docker push 192.168.88.10:8080/mynginx
      
    • image-20220601165135743

2.2.2、拉取

  1. 删除本地所有 Nginx 镜像

    docker rmi -f nginx:latest 192.168.88.10:8080/mynginx:1.0
    
  2. 拉取镜像

    • docker pull 192.168.88.10:8080/mynginx:1.0
      
    • image-20220601165557528

posted @ 2022-06-01 15:48  Jaywee  阅读(64)  评论(0编辑  收藏  举报

👇