本地 Docker Registry 的安装与使用
时间:2022-07-23
本文章向大家介绍本地 Docker Registry 的安装与使用,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本地 Docker Registry 的安装与使用
安装 Docker 环境之后, 可以开始下载和运行 Docker 镜像了, 比如要下载一个 nginx 服务器, 只要输入下面的命令:
docker pull nginx:alpine
就能下载到基于 alpine 的最新版本的 nginx 服务器镜像, 然后再输入:
docker run
--detach
--name nginx
--volume $(pwd)/nginx/conf.d:/etc/nginx/conf.d:ro
--volume $(pwd)/nginx/html:/usr/share/nginx/html
--volume $(pwd)/nginx/log:/var/log/nginx
--publish 80:80
--restart unless-stopped
nginx:alpine
就可以开始运行 nginx 服务器了, 使用起来非常方便。
作为开发者, 自然会自己制作一些镜像, 在公司内网分发, 或者开发团队制作镜像, 然后交付给测试团队进行测试, 这就需要一个内部分发镜像的服务器, 这个 Docker 团队自然也想到了, 并且提供了一个镜像 retistry , 先把这个镜像拉倒本地:
docker pull registry:latest
等待下载完成之后, 运行这个镜像:
docker run
--detach
--name registry
--hostname registry
--volume $(pwd)/registry:/var/lib/registry/docker/registry
--publish 5000:5000
--restart unless-stopped
registry:latest
在地址栏输入 https://127.0.0.1:5000/v2/_catalog
, 将会看到类似下面的输出:
{"repositories":[]}
接下来我们尝试将上面的 nginx:alpine
上传到本地的 registry 服务器, 首先为这个镜像定义一个新的标签:
docker tag nginx:alpine 127.0.0.1:5000/nginx:alpine
然后确认存在这个标签
docker images
输出如下:
REPOSITORY TAG IMAGE ID CREATED SIZE
127.0.0.1:5000/nginx alpine 0ae090dba3ab 3 months ago 54.3 MB
nginx alpine 0ae090dba3ab 3 months ago 54.3 MB
现在可以上传这个镜像:
docker push 127.0.0.1:5000/nginx:alpine
输出如下
The push refers to a repository [127.0.0.1:5000/nginx]
4a8d9a67e458: Pushed
c0ab80890b7f: Pushed
d4930e247b49: Pushed
9f8566ee5135: Pushed
alpine: digest: sha256:bf63c02f35f7f8d0a95af4904d38ea17ef3f0c86e6b95d716200bdd9963f5ec5 size: 1154
现在来浏览 https://127.0.0.1:5000/v2/_catalog
, 将会看到这样的结果:
{"repositories":["nginx"]}
表示已经有了 nginx
这个镜像, 如果要看这个镜像有什么版本, 需要输入地址 https://127.0.0.1:5000/v2/nginx/tags/list
, 结果如下:
{"name":"nginx","tags":["alpine"]}
如果要在其它装了 docker 的电脑上获取这个镜像, 或者下载局域网其它 registry 服务器上的镜像, 有两个选择:
- 配置 HTTPS 证书, 因为是内网分发, 没有必要去折腾证书。 如果需要的话, 可以参考这个教程来配置域证书或者这个教程来配置自签名证书;
- 参考这个教程修改 docker 的
daemon.json
文件, 配置insecure-registries
选项。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法