文章目录
-
- [Docker 镜像如何区分推送远程和本地](#Docker 镜像如何区分推送远程和本地)
- [1、拉取并启动 Docker Registry 镜像](#1、拉取并启动 Docker Registry 镜像)
- 2、验证本地仓库容器状态
- [3、编辑 daemon.json](#3、编辑 daemon.json)
- [4、restart Docker](#4、restart Docker)
- [5、为本地镜像打 tag](#5、为本地镜像打 tag)
- [6、推送 tag 到本地镜像仓库](#6、推送 tag 到本地镜像仓库)
Docker 镜像如何区分推送远程和本地
镜像标签格式
Docker 镜像标签通常遵循以下格式:
[registry/][namespace/]repository:tag
- registry/(可选): 指定镜像仓库的地址。如果不指定,则默认为 Docker Hub(Docker 官方的公共仓库)。
- namespace/(可选): 通常用于组织或用户的命名空间。
- repository: 镜像仓库的名称。
- tag: 镜像的标签,通常用于标识镜像的版本(如 latest、v1.0 等)。
当你使用 localhost:5001 作为镜像标签的一部分时,Docker 客户端会知道你要推送到本地的 Docker Registry。
1、拉取并启动 Docker Registry 镜像
本地 5001 映射 容器 5000 端口
docker run -d -p 5001:5000 --name registry registry:2
2、验证本地仓库容器状态
curl http://localhost:5001/v2/_catalog
返回
{"repositories":[]}
3、编辑 daemon.json
vi~/.docker/daemon.json
添加内容
{
"insecure-registries": ["localhost:5000"]
}
4、restart Docker
之后记得启动
docker run -d -p 5001:5000 --name registry registry:2
5、为本地镜像打 tag
版本号 0.0.1
前缀 localhost:5001
docker tag image_name:0.0.1 localhost:5001/image_name:0.0.1
6、推送 tag 到本地镜像仓库
通过指定 ip和端口,可以把tag推送到本地仓库
docker push localhost:5001/tag_name