Registry是docker中用来配置自己的私有镜像仓库的。
拉取registry的镜像:
[root@iZbp184c49hy62wqvvzrwzZ /]# docker pull registry
Using default tag: latest
latest: Pulling from library/registry
6a428f9f83b0: Pull complete
90cad49de35d: Pull complete
b215d0b40846: Pull complete
429305b6c15c: Pull complete
6f7e10a4e907: Pull complete
Digest: sha256:265d4a5ed8bf0df27d1107edb00b70e658ee9aa5acb3f37336c5a17db634481e
Status: Downloaded newer image for registry:latest
docker.io/library/registry:latest
查看本地的镜像
[root@iZbp184c49hy62wqvvzrwzZ /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry latest b2cb11db9d3d 8 days ago 26.2MB
运行此镜像并生成响应的容器 -v (将上传的镜像挂载到本地)
docker run -d \
-p 5000:5000 \
--restart=always \
--name registry \
-v /home/tool/registry:/var/lib/registry \
registry
-p : 端口映射
--restart=alawys (docker启动时自动启动)
-v 将容器中的指定的文件夹挂载到本地
查询运行中的容器(看是否启动成功)
[root@iZbp184c49hy62wqvvzrwzZ registry]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bad377d59f30 registry:latest "/entrypoint.sh /etc…" 9 seconds ago Up 7 seconds 0.0.0.0:5000->5000/tcp registry
访问测试(有防火墙的需要配置一下) 出现如下情况则表示搭建成功了
ip:端口/v2/
测试上传
将镜像标记、归入指定仓库 声明:因作者多次尝试记录。导致本文中新镜像的名称未保持统一,实际操作时请注意。建议自定义名称
docker tag redis "ip":"端口"/redis(此处为镜像新名称)
查看修改后的镜像
[root@iZbp184c49hy62wqvvzrwzZ /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
47.96.132.89:5000/redis latest fad0ee7e917a 3 months ago 105MB
redis latest fad0ee7e917a 3 months ago 105MB
上传 归类 后的镜像 发现出现以下问题
[root@iZbp184c49hy62wqvvzrwzZ /]# docker push 47.96.132.89:5000/redis
Using default tag: latest
Error response from daemon: Get https://47.96.132.89:5000/v2/: http: server gave HTTP response to HTTPS client
这是因为我们启动的registry服务不是安全可信赖的。修改docker的相关的配置
文件:/etc/docker/daemon.json
添加以下蓝色内容:
{
"registry-mirrors":[ "https://pee6w651.mirror.aliyuncs.com"],"insecure-registries": ["私有镜像的ip(安装registry的ip):其端口"]
}
重新启动docker:systemctl restart docker
启动registry(上面已经设置自动启动了,此处就无需自己启动了)
上传镜像到自己的仓库
docker push 47.96.132.89:5000/redis
查看访问其仓库目录(注:和上面url不一样)
在本地查看上传的镜像
拉取上传的镜像
1、先将本地的删除了
dcoker rmi 镜像名称(tag生成的镜像id和老的一样,故此处使用名称删除)
docker rmi 47.96.132.89:5000/redistest
2、拉取上传的镜像
docker pull 镜像名称
删除私有镜像仓库的镜像
1、找到你挂载的目录
2、找到文件夹 repositories
3、在repositories中删除要删除的镜像即可