18-搭建本地 Registry
Docker Hub 虽然非常方便,但还是有些限制,比如:
需要 internet 连接,而且下载和上传速度慢。
上传到 Docker Hub 的镜像任何人都能够访问,虽然可以用私有 repository,但不是免费的。
安全原因很多组织不允许将镜像放到外网。
解决方案就是搭建本地的 Registry。
Docker 已经将 Registry 开源了,同时在 Docker Hub 上也有官方的镜像 registry。下面我们就在 Docker 中运行自己的 registry。
1、启动 registry 容器
docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry
-d
是后台启动容器。-p
将容器的 5000 端口映射到 Host 的 5000 端口。5000 是 registry 服务端口。端口映射我们会在容器网络章节详细讨论。-v
将容器 /var/lib/registry 目录映射到 Host 的 /myregistry,用于存放镜像数据。-v
的使用我们会在容器存储章节详细讨论。
2、通过 docker tag
重命名镜像,使之与 registry 我们在镜像的前面加上了运行 registry 的主机名称和端口。
我们在镜像的前面加上了运行 registry 的主机名称和端口。
前面已经讨论了镜像名称由 repository 和 tag 两部分组成。而 repository 的完整格式为:[registry-host]:[port]/[username]/xxx
只有 Docker Hub 上的镜像可以省略 [registry-host]:[port] 。
3、通过 docker pull
上传镜像
这个问题可能是由于客户端采用https,docker registry未采用https服务所致。
解决方法:
在”/etc/docker/“目录下,创建”daemon.json“文件。在文件中写入:
{"insecure-registries":["192.168.0.43:5000"]}
4、现在已经可通过 docker pull
从本地 registry 下载镜像了
以上是搭建本地 registry 的简要步骤。当然 registry 也支持认证,https 安全传输等特性,具体可以参考官方文档 https://docs.docker.com/registry/configuration/
最新文章
- [WCF编程]12.事务:事务传播
- poolboy的坑
- mysql-advanced-5.6.23-linux-glibc2.5-x86_64安装
- 关于php的认识和介绍
- gitlab ActionView::Template::Error (undefined method `[]' for nil:NilClass): 500错误
- 集成activiti-modeler 到 自己的业务系统
- Codeforces554C:Kyoya and Colored Balls(组合数学计算+费马小定理)
- USB-CSW之旅
- C# 坦克大战学习总结
- android设置背景图片透明
- 结构-行为-样式-angularJs 指令实现滚动文字
- linq to sql DAL
- iOS-Xcode编码自动补全失效
- PHP对大小写敏感问题
- 编写手机端自适应页面案例,springMVC代码,SpringMVC上传代码,去掉input框中原有的样式,使ios按钮没有圆角,css中的border-radius类似
- mysql 导入数据库问题
- LeetCode——300. Longest Increasing Subsequence
- Java的初始化执行顺序(父类static变量->;子类static变量->;父类成员变量->;父类构造器->;成员变量->;构造器->;main函数)
- 【js】某字符串多次替换
- HTML5 <;Audio>;标签API整理(三)
热门文章
- java多层嵌套集合的json,如何获取多层集合中所需要的value
- Java基础语法02-流程控制-if-switch-for-while
- 拓展 centos 7
- CSS 利用 `padding-bottom` 实现固定比例的容器
- 文字转语音?我只用十行Python代码就搞定了!
- Java生鲜电商平台-高可用微服务系统如何设计?
- C#NULL条件运算符
- Angular中innerHTML标签的样式不起作用详解
- Python内置装饰器@property
- mybatis报错: java.lang.IllegalArgumentException invalid comparison: java.util.Date and java.lang.String