Docker 私有仓库配置
2016-10-18 15:22
232 查看
Docker 私有仓库配置
配置环境: Centos 7.2 Docker 1.12.2
一、为何配置Docker私有仓库
主要是为了快,实际上Docker Hub的功能已经非常全面,而且有用户管理系统,有private repository, web操作界面, 唯一一点就是太慢了,下载一个镜像非常久,我在开发时需要经常修改镜像并在其他机器上部署,如果每次都要这样下载太花时间。用私有仓库的话速度就会快很多,这样在pull和push时就能省时不少。用什么
Docker 推出了安全私有仓库Docker Trusted Registry, 功能和Docker Hub 差不多,但是是私有的,有web的管理界面, 很好很强大。就有点像有天我突然想吃麦当劳了,就自己在楼下开了一家。可惜这个是基于商业支持版的CS Docker Engine,需要收费, 目前是每个实例每个月150刀,24x7支持的300刀,支付不起,等以后有钱了就用这个。现在比较穷所以还是自己买个小锅炸鸡翅吃比较划算。就使用原来registry就够了, 反正只是方便自己使用,那些功能意义并不太大,registry也够用的, 在docker hub上可以搜索到官方的镜像。
二、配置registry
仓库地址在这里→ registry运行仓库
首先打开docker客户端,输入指令docker run \
-e SETTINGS_FLAVOR=s3 \
-e AWS_BUCKET=acme-docker \
-e STORAGE_PATH=/registry \
-e AWS_KEY=AKIAHSHB43HS3J92MXZ \
-e AWS_SECRET=xdDowwlK7TJajV1Y7EoOZrmuPEJlHYcNP2k4j49T \
-e SEARCH_BACKEND=sqlalchemy \
-p 5000:5000 \
registry
docker会自动从hub上下载镜像并运行,这里注意绑定的是5000端口,要容5000端口是可用的,装好后docker ps 可以看到一个叫registry的容器已经在运行。
那么现在已经获得了自己的仓库,可以在浏览器中输入 <仓库所在的IP地址>:5000/v2/ 就可以看到返回了一对大括号 {} 说明运行成功了。
使用仓库
首先给要上传的镜像做一个tag 例如shell
docker tag hello-world 127.0.0.1:5000/hello-world
这里将原来名为hello-world 的镜像弄一个新的标签,这里的ip和端口要根据自己实际的仓库设置来写。
使用push
docker push 127.0.0.1:5000/hello-world
如果返回以下内容,说明docker已经将镜像上传到这个仓库里。
The push refers to a repository [127.0.0.1:5000/hello-world]
a02596fd43f2: Pushed
latest: digest: sha256:a18ed77532f6d6fs1500db650194e0f93432a5f05f8b50d404323t4ae5f83aa4 size: 234
遇到问题
实际上很有可能返回的是这个The push refers to a repository [127.0.0.1:5000/hello-world]
Get https://127.0.0.1:5000/v1/_ping: http: server gave HTTP response to HTTPS client
就说我们这个HTTPS客户端收到的是HTTP响应,就是本来应该是应该使用安全连接与仓库服务器通信的,结果却收到的是不安全的连接。就是手这个仓库镜像本身没有使用安全连接,就是不安全仓库,所以需要在docker中配置一下。
registry官方给出的方法是要在启动脚本里加上:
–insecure-registry REGISTRY_HOSTNAME:5000
这个可能适用于其他的系统版本,但是在我这个配置下没有找到,后来在网上发现docker配置文件是 /etc/docker下的 .json格式的文件。
在该文件夹下创建或者修改daemon.json文件,然后在里面加入一个键值对
{ “insecure-registries”:[“127.0.0.1:5000”] }
将这个ip所代表的的主机注明为不安全的仓库。
然后重启docker服务。
systemctl restart docker
然后再重新push刚才的镜像,就可以成功了。(如果在本机上运行仓库镜像的话,重启docker服务后记得要重启仓库)之后可以使用pull命令从该仓库取得镜像
相关文章推荐
- Docker 私有仓库配置
- Docker Registry Server 搭建,配置免费HTTPS证书,及拥有权限认证、TLS 的私有仓库
- docker深入1-配置非https的公司私有的registry仓库
- Docker私有仓库registry配置
- docker私有仓库配置
- 配置Docker beta for Mac访问私有镜像仓库
- Docker Registry Server 搭建,配置免费HTTPS证书,及拥有权限认证、TLS 的私有仓库
- Docker Registry Server 搭建,配置免费HTTPS证书,及拥有权限认证的私有仓库
- 在centos7.x系统,配置docker私有镜像仓库
- 【docker安装与配置】docker安装与私有仓库安装
- docker 私有仓库配置
- Docker搭建本地私有仓库
- docker私有仓库
- 在Maven的配置文件中,自定义私有仓库地址和设置下载的jar包的保存位置
- Docker 私有仓库恢复
- 使用Docker registry镜像创建私有仓库
- 使用Docker registry镜像创建私有仓库
- 搭建Docker私有仓库的详细教程
- Docker私有仓库与docker-web-ui的搭建
- Docker 搭建私有仓库