Docker私有仓库管理,删除本地仓库中的镜像
2019-04-25 10:07
489 查看
首先给大家分享一个巨牛巨牛的人工智能教程,是我无意中发现的。教程不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵段子,像看小说一样,哈哈~我正在学习中,觉得太牛了,所以分享给大家!点这里可以跳转到教程
一:Docker私有仓库安装
1、 下载镜像是有镜像仓库:
[root@localhost ~]# systemctl start docker#如果已经有镜像了,强制删除原来的镜像的方式如下:[root@xxx-pub /]# docker rmi -f docker.io/registryUntagged: docker.io/registry:latestUntagged: docker.io/registry@sha256:51bb55f23ef7e25ac9b8313b139a8dd45baa832943c8ad8f7da2ddad6355b3c8[root@xxx-pub /]##开始下载最新的镜像。[root@localhost ~]# docker pull registryUsing default tag: latestlatest: Pulling from library/registry4064ffdc82fe: Pull complete c12c92d1c5a2: Pull complete 4fbc9b6835cc: Pull complete 765973b0f65f: Pull complete 3968771a7c3a: Pull complete Digest: sha256:20bbbc0f6384cf7dc6e292ccbe75935b73c92ec776543c970904bc60feceb129Status: Downloaded newer image for registry:latest[root@localhost ~]#
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
[root@xxx-pub /]# docker run -d -v /registry:/home/docker-registry -p 5000:5000 --restart=always --privileged=true --name registry registry:latestUnable to find image 'registry:latest' locallyTrying to pull repository docker.io/library/registry ... latest: Pulling from docker.io/library/registryDigest: sha256:51bb55f23ef7e25ac9b8313b139a8dd45baa832943c8ad8f7da2ddad6355b3c8Status: Downloaded newer image for docker.io/registry:latestb7bd2b14ed488936afe798be95f3cd56f604fb092d45cf6f4a58359bcad0d34c[root@xxx-pub /]#
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
-p 5000:5000 :端口映射。即本地5000端口,映射到registry中的5000端口。
–restart=always1:在容器退出时总是重启容器,主要应用在生产环境。
–privileged=true:在CentOS7中的安全模块selinux把权限禁掉了,参数给容器加特权,不加上传镜像会报类似权限错误。OSError: [Errno 13] Permission denied: ‘/tmp/registry/repositories/liibrary’)或者(Received unexpected HTTP status: 500 Internal Server Error)
–name registry:指定容器的名称。
为了持久化数据,将volume挂载到/home/docker-registry
3、 我们给一个本地镜像打个标签然后上传:
查看本地有哪些镜像:
[root@xxx-pub /]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEdocker.io/centos centos7.5.1804 fdf13fa91c6e 4 weeks ago 200 MBdocker.io/registry latest b2b03e9146e1 2 months ago 33.3 MB[root@xxx-pub /]#
- 1
- 2
- 3
- 4
- 5
[root@xxx-pub /]# docker tag fdf13fa91c6e localhost:5000/xxx-centos7.5.1804:1.0##localhost:5000表示仓库地址,fdf13fa91c6e表示images id,xxx-centos7.5.1804表示镜像名称,1.0表示版本号。或:[root@xxx-pub /]# docker tag docker.io/centos:centos7.5.1804 localhost:5000/xxx-centos7.5.1804:1.0
- 1
- 2
- 3
- 4
- 5
[root@xxx-pub /]# docker push localhost:5000/xxx-centos7.5.1804:1.0The push refers to a repository [localhost:5000/xxx-centos7.5.1804]bcc97fbfc9e1: Pushed 1.0: digest: sha256:7c14180942615fef85cb5c8b1388e028be1a8f79694a5fa30a4025173e42ad61 size: 529[root@xxx-pub /]#
- 1
- 2
- 3
- 4
- 5
[root@localhost ~]# docker push 192.168.174.128:5000/hello:latestThe push refers to a repository [192.168.174.128:5000/hello]unable to ping registry endpoint https://192.168.174.128:5000/v0/v2 ping attempt failed with error: Get https://192.168.174.128:5000/v2/: http: server gave HTTP response to HTTPS client v1 ping attempt failed with error: Get https://192.168.174.128:5000/v1/_ping: http: server gave HTTP response to HTTPS client[root@localhost ~]#
- 1
- 2
- 3
- 4
- 5
- 6
使用的是https,修改/etc/sysconfig/docker(这里是Centos7下的docker)文件,加上ADD_REGISTRY=’–add-registry 192.168.18.162:5000’,INSECURE_REGISTRY=’–insecure-registry 192.168.18.162:5000’ (上面是历史的docker版本的配置),如下图:
但是在新的docker容器仓库的配置中,自己的docker容器中的配置采用(这里在docker registry和另外pull镜像的机器上都指定如下的配置):
指定完成之后,要重启docker,重启的配置如下:
[root@youx-pub volumes]# systemctl restart docker
- 1
[root@youx-pub registry]find / -name docker.service/sys/fs/cgroup/memory/system.slice/docker.service/sys/fs/cgroup/devices/system.slice/docker.service/sys/fs/cgroup/blkio/system.slice/docker.service/sys/fs/cgroup/cpu,cpuacct/system.slice/docker.service/sys/fs/cgroup/pids/system.slice/docker.service/sys/fs/cgroup/systemd/system.slice/docker.service/usr/lib/systemd/system/docker.service[root@youx-pub registry]# vim /usr/lib/systemd/system/docker.service
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
然后执行一下:
#因为可以用于systemctl启动的docker.service文件变化了,所以得执行以下配置。然后执行docker的重启工作systemctl daemon-reloadsystemctl restart docker
- 1
- 2
- 3
[root@youx-pub registry]# docker push 192.168.18.162:5000/nginx:1.2The push refers to a repository [192.168.18.162:5000/nginx]Get https://192.168.18.162:5000/v1/_ping: http: server gave HTTP response to HTTPS client[root@youx-pub registry]#
- 1
- 2
- 3
- 4
在/etc/docker下创建daemon.json,内容是:
{"insecure-registries":["192.168.18.162:5000"]}
- 1
[root@youx-pub volumes]# systemctl restart docker
- 1
[root@xxx-pub docker-registry]# pwd/home/docker-registry[root@xxx-pub docker-registry] # ls /registry/Docker
- 1
- 2
- 3
- 4
[root@xxx-pub docker-registry]# curl http://192.168.18.162:5000/v2/_catalog{"repositories":["xxx-centos7.5.1804","xxx-centos7.5.1804-v1.0"]}[root@xxx-pub docker-registry]#
- 1
- 2
- 3
[root@xxx-pub docker-registry]# curl http://192.168.18.162:5000/v2/xxx-centos7.5.1804/tags/list{"name":"xxx-centos7.5.1804","tags":["1.0"]}[root@xxx-pub docker-registry]#
- 1
- 2
- 3
[root@bigdata2 ~]# docker pull 192.168.18.162:5000/youx-centos7.5.1804:1.0Using default tag: latestTrying to pull repository 192.168.18.162/youx-centos7.5.1804 ... Get https://192.168.18.162/v1/_ping: dial tcp 192.168.18.162:443: getsockopt: no route to host[root@bigdata2 ~]#
- 1
- 2
- 3
- 4
- 5
编译:
[root@youx-pub volumes]# vim /etc/containers/registries.conf 这个文件。旧的是编辑:/etc/sysconfig/docker 这个文件
- 1
- 2
然后重启docker
[root@youx-pub volumes]# systemctl restart docker
- 1
#要注意的是,这里的地址是:仓库地址:仓库端口号/REPOSITORY:TAG[root@bigdata2 ~]# docker pull 192.168.18.162:5000/youx-centos7.5.1804:1.0
- 1
- 2
如果还不行,需要修改/etc/docker/daemon.json,内容如下:
[root@bigdata2 docker]# cat daemon.json {"insecure-registries":["192.168.18.162:5000"]}
- 1
- 2
二、从另外一台机器上上传镜像到docker镜像仓库:
[root@bigdata2 ~]# docker tag centos7-jdk8-nginx:1.0 192.168.18.162:5000/centos7-jdk8-nginx:1.0[root@bigdata2 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE192.168.18.162:5000/centos7-jdk8-nginx 1.0 bcacd65e2a2e 2 minutes ago 2.18 GB[root@bigdata2 ~]# docker push 192.168.18.162:5000/centos7-jdk8-nginx:1.0The push refers to a repository [192.168.18.162:5000/centos7-jdk8-nginx]f018e9c38a66: Pushed 2a47dcd341ef: Pushed c5dea3bc729a: Pushed bcc97fbfc9e1: Pushed 1.0: digest: sha256:d907ff2f8eb590209700c01ce85c78d0bc778a4238539d747e4667d68cb52102 size: 1163[root@bigdata2 ~]#
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
[root@youx-pub registry]# curl http://192.168.18.162:5000/v2/_catalog{"repositories":["centos7-jdk8-nginx","nginx"]}[root@youx-pub registry]# curl http://192.168.18.162:5000/v2/centos7-jdk8-nginx/tags/list{"name":"centos7-jdk8-nginx","tags":["1.0"]}[root@youx-pub registry]#
- 1
- 2
- 3
- 4
- 5
二、本地镜像如何删除,正常是不提供删除功能的,所以使用第三方的插件来进行删除
插件github上的位置:https://github.com/burnettk/delete-docker-registry-image
- 1
- 2
[root@master registry]# curl https://raw.githubusercontent.com/burnettk/delete-docker-registry-image/master/delete_docker_registry_image.py | sudo tee /usr/local/bin/delete_docker_registry_image >/dev/nullsudo chmod a+x /usr/local/bin/delete_docker_registry_image
- 1
- 2
- 3
2、 设置相关环节变量:
查找REGISTRY_DATA_DIR,命令:[root@youx-pub registry]# find / -name registry[root@youx-pub registry]# find / -name registry/var/lib/docker/overlay2/d72320cd67b42f7ae66342cc6dedab7abe5e89106de8c4919ec8c5a6e5940b09/diff/var/lib/ucf/registry/var/lib/docker/overlay2/92211417089f7be8239def550e1e89ce3f0e50ac57f2c36ba723ca312ea06ae3/diff/bin/registry/var/lib/docker/overlay2/c1716aea0b380eb94ead9aa02552769acd4c3dac8e6dab735997f1709ce79a33/diff/etc/docker/registry/var/lib/docker/overlay2/46f719f01255c431b4343e78607341d6d66ea482bc6d03c3b4e05e7413f46be6/diff/var/lib/registry/var/lib/docker/overlay2/46f719f01255c431b4343e78607341d6d66ea482bc6d03c3b4e05e7413f46be6/merged/bin/registry/var/lib/docker/overlay2/46f719f01255c431b4343e78607341d6d66ea482bc6d03c3b4e05e7413f46be6/merged/etc/docker/registry/var/lib/docker/overlay2/46f719f01255c431b4343e78607341d6d66ea482bc6d03c3b4e05e7413f46be6/merged/var/lib/registry/var/lib/docker/volumes/1522d54c954c755250cb71686cacd9714cd3d0f0c706ec18c1e490c7881fe713/_data/docker/registry/opt/data/registry/registry[root@youx-pub registry]#发现[root@youx-pub repositories]# pwd/var/lib/docker/volumes/1522d54c954c755250cb71686cacd9714cd3d0f0c706ec18c1e490c7881fe713/_data/docker/registry/v2/repositories[root@youx-pub repositories]# lscentos7-jdk8-nginx nginx[root@youx-pub repositories]#所以设置镜像仓库的位置为:[root@master registry]# export REGISTRY_DATA_DIR=/var/lib/docker/volumes/1522d54c954c755250cb71686cacd9714cd3d0f0c706ec18c1e490c7881fe713/_data/docker/registry/v2
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
地址就是咱们挂载地址:
看一下相关标签:[root@youx-pub registry]# curl http://192.168.18.162:5000/v2/_catalog{"repositories":["youx-centos7.5.1804","youx-centos7.5.1804-v1.0"]}[root@youx-pub registry]# curl http://192.168.18.162:5000/v2/youx-centos7.5.1804-v1.0/tags/list{"name":"youx-centos7.5.1804-v1.0","tags":["latest"]}[root@youx-pub registry]#
- 1
- 2
- 3
- 4
- 5
[root@master registry]# delete_docker_registry_image --image youx-centos7.5.1804-v1.0:latest
- 1
咱们再看一下本地仓库的镜像有几个:
[root@master registry]# curl http://192.168.18.162:5000/v2/_catalog{"repositories":["youx-centos7.5.1804"]}
- 1
- 2
相关文章推荐
- Docker私有仓库管理和删除本地仓库中的镜像
- 【Docker】创建私有仓库, 查看私有仓库镜像, 方便本地共享
- centos7 Docker私有仓库搭建及删除镜像
- Docker私有仓库 Registry中的镜像管理
- 可能是最详细的部署:Docker Registry企业级私有镜像仓库Harbor管理WEB UI
- 可能是最详细的部署:Docker Registry企业级私有镜像仓库Harbor管理WEB UI
- Docker删除私有仓库镜像
- 删除docker私有仓库中的镜像
- docker删除私有仓库中的镜像
- 可能是最详细的部署:Docker Registry企业级私有镜像仓库Harbor管理WEB UI
- 删除Docker私有仓库内的镜像
- Docker搭建本地私有仓库
- Docker 本地导入镜像/保存镜像/载入镜像/删除镜像的方法
- Nexus 搭建docker本地仓库(hosted)和私有仓库(proxy)
- docker本地镜像仓库harbor
- docker篇3-Docker共有仓库和本地私有仓库的构建
- Docker搭建本地私有仓库
- 删除docker私有库镜像
- 使用Docker registry镜像创建私有仓库的方法
- Docker实践(五):镜像的概念、管理(查看、下载、删除)