Docker Registry
Table of Contents
Section titled “Table of Contents”创建本地 docker 仓库
$ docker pull registry $ docker images > registry latest 3c11102b9417 2 months ago 23.7MB $ docker run -d -p 5000:5000 \ # 宿主 5000 端口映射到容器 5000 端口 --restart=always \ # 容器随宿主启动 --volume /opt/registry:/var/lib/registry \ # 宿主目录映射到容器目录 --name registry registry # 容器名称 镜像名称 $ docker ps > 9f5e1fa8dab6 registry:latest "/entrypoint.sh /etc…" 8 weeks ago Up 3 weeks 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp
注: /var/lib/registry
是容器内存放镜像的路径
本地配置 docker
$ ifconfig > ...... > 10.58.14.96 # 查看宿主机器 IP > ...... $ vim /etc/docker/daemon.json > ...... > "insecure-registries": [ "10.58.14.96:5000" # 添加本地仓库地址 ] > ...... $ systemctl daemon-reload # 重新加载 docker 配置文件 $ systemctl restart docker # 重新启动 docker
将本地镜像推送至本地仓库
$ docker images > REPOSITORY TAG IMAGE ID CREATED SIZE > mysql latest bdfb0ec4d54a 2 months ago 599MB $ docker tag mysql:latest 10.58.14.96:5000/mysql:latest $ docker images > REPOSITORY TAG IMAGE ID CREATED SIZE > mysql latest bdfb0ec4d54a 2 months ago 599MB > 10.58.14.96:5000/mysql latest bdfb0ec4d54a 2 months ago 599MB $ docker push 10.58.14.96:5000/mysql:latest $ curl -XGET http://10.58.14.96:5000/v2/_catalog > {"repositories":["mysql"]}
管理私有仓库镜像
$ curl -XGET http://10.58.14.96:5000/v2/_catalog > {"repositories":["mysql"]} $ curl -XGET http://10.58.14.96:5000/v2/mysql/tags/list > {"name":"mysql","tags":["latest"]}
删除私有仓库镜像, 官方删除方式只删除元数据, 镜像未删除
可以直接删除镜像文件方式删除仓库镜像
# 直接进入映射路径删除镜像文件或进入容器路径删除镜像 $ rm -rf {map_path}/docker/registry/v2/repositories/{image} $ docker exec registry rm -rf /var/lib/registry/docker/registry/v2/repositories/{images} $ rm -rf /var/lib/registry/docker/registry/v2/repositories/mysql $ curl -XGET http://10.58.14.96:5000/v2/_catalog > {"repositories":[]}