赞
踩
本讲是从Docker系列讲解课程,单独抽离出来的一个小节,前些章节主要是理论+实战,本节讲述Docker高级应用registry本地仓库的部署和使用。
由于该镜像仓库比较单一,实际生产环境很少有公司使用,所以不做为重点学习,了解即可。主要了解它的一些使用原理、docker push的使用,以及daemon.json的简单配置。
注:如果你对企业级仓库Harbor感兴趣,点击进入 !
registry是一个非常简单的轻量级本地私有仓库,通过push命令,存储本地(自定义)镜像到私有仓库registry。
镜像名称常用命名规则:${registry_name}/${repository_name}/$image_name}:$tag_name}
远端仓库地址urI/分类仓库名字/镜像名字:标签名字
示例: harbor.test.com/test/nginx:v1
预告:学习过程中,重点了解docker tag和docker push两个命令,同时简单了解一下通过/etc/docker/daemon.json来简单配置registry本地私有仓库。在学习过程,配置文件少一个逗号,tag时少一个标签,或者忘记了重新生效配置文件,都有可能导致报错。
- docker pull registry
- docker images
docker run -d -p 5000:5000 --restart=always --name registry registry:latest
知识点:1、了解到registry它的默认端口是5000;2、简单了解--restart=always的使用,它的含义是容器出现故障时默认无限次的尝试重启。
ifconfig #查看宿主机ens33/eth0网卡的IP地址
可以获悉ip 192.168.31.100
http://192.168.31.100:5000/v2/_catalog
看到界面,说明容器已经访问成功,仅仅是目前私有仓库中没有存储镜像而已
- cp /etc/docker/daemon.json daemon.json.backup #修改前先做备份,便于实验结束后还原
- vim /etc/docker/daemon.json #编辑配置文件,修改registry仓库地址
- "insecure-registries":["registry.access.redhat.com","quay.io","192.168.31.100:5000"],
- "exec-opts":["native.cgroupdriver=systemd"],
- "live-restore":true
注:配置registry仓库的ip地址,可以是远程云服务器的ip地址。
特别注意:配置信息除最后一行外,每行末尾都有一个英文的逗号,否则docker无法重启。
- systemctl daemon-reload # 重载配置文件
- systemctl restart docker # 重启docker
- docker images #查看已有镜像
- docker tag nginx:alpine 192.168.31.100:5000/test/mynginx:v1 #给已有镜像打标签
- docker images #查看是否标记成功
- docker push 192.168.31.100:5000/test/mynginx:v1 #上传镜像到私有仓库
docker tag语法:docker tag image_name:tag repository_name/self_image_name:tag
注:repository_name需要和daemon.json中配置的地址一致,写错或者不写,在push时都会报如下错误:docker denied: requested access to the resource is denied
注意:1、push前需要给将要上传的镜像打tag;2、push时需要给镜像指定tag标签,否则会push失败。
http://192.168.31.100:5000/v2/_catalog
访问成功,说明镜像已经成功上传到registry私有仓库中。
- docker images
- docker rmi 192.168.31.100:5000/test/mynginx:v1 #移除本地已有镜像,便于稍后从私有仓库重新下载
- docker images
- docker pull 192.168.31.100:5000/test/mynginx:v1 #拉取时,前面需要携带私有仓库地址,尾部需要携带tag标签
- docker images #查看是否拉取成功
为不影响其他实验,还原/etc/docker/daemon.json文件的文本内容。
- docker rmi 192.168.31.100:5000/test/mynginx:v1 #删除镜像
- docker rm -f registry:latest #移除容器
- rm /etc/docker/daemon.json #移除配置的配置文件
- mv /etc/docker/daemon.json.backup /etc/docker/daemon.json #还原备份文件
- systemctl daemon-reload # 重载配置文件
- systemctl restart docker # 重启docker
本讲重点学习了registry的配置(在/etc/docker/daemon.json),并了解"live-restore":true的使用(详情见一.2);在学习过程中,着重了解docker tag、docker push、两个命令的使用。当然,中间的坑本文已经尽可能的为你规避掉,如有疑问可留言共同探讨。
registry仅提供一个存储镜像的地方,它只简单的展示了私有仓库的镜像名称和tag,无法查看私有仓库更详细信息。实际生产环境很少用到registry私有仓库,所以下章节继续学习:Harbor企业级仓库。
本讲内容是从 Docker入门到进阶里面抽离出来的内容,尽管知识点比较简单,也是docker学习路上不可或缺的一部分。希望对大家有所帮助,不当之处,望批评指正,学习路上,一起踩坑、一起砥砺前行!
猜你可能会感兴趣的内容
1、Docker外部浏览器访问容器 | 容器访问容器 | 访问容器的常用5种方式 | -p -P 详解
2、Docker容器五种(3+2)网络模式 | bridge模式 | host模式 | none模式 | container 模式 | 自定义网络模式详解
3、Docker容器间数据挂载与共享 | 远程共享&挂载数据卷 | sshfs挂载远程volume | 容器内部通过sshfs访问远程主机
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。