Docker学习总结之docker创建私有仓库(private Repositories)
Docker 创建 Private Repositories
前言
基于GFW的缘故,国内大陆基本无法pull国外的镜像,更别说官方的index了。如果images无法pull下来,那么docker就失去了存在的意义,就更别提国内广大程序猿为docker而献身奋斗了。所以基于此,笔者认为有必要国内用户自行搭建一个Private Repositories。一方面为了更好的研究,使用Docker。另一方面也是为了节省pull和push的时间,要不然动不动就是几十分钟的耗时,谁能承担起这些时间成本。最后一点,也是为了可以更好的管理images,毕竟国内很过公司出于各种目的还是不希望公开这些images。
所以基于此,创建一个Private Repository就显得尤为必要了。
步骤
方法一:
最简单的方法莫过于直接pull下来,docker官网提供的registry镜像了。但是需要说明的是官网目前提供的最新版本不稳定,有bug(笔者目前看到的最新版本为0.8.1,所有版本可以在https://registry.hub.docker.com/_/registry/tags/manage/查看)。而且下面各国网友也反映了,0.8.1的确存在问题。因此,笔者经过多次评测,选取了最稳定的0.7.1版本。
执行以下命令既可完成private repository的创建:
docker run -d -p : --name registry registry:0.7.
方法二:
使用git上面的源码进行创建。
首先登陆到docker在git上面的源码页面,https://registry.hub.docker.com/_/registry/ 。
因为目前最新的0.8.1版本存在bug,因此我们需要tag为0.7.1的版本。在页面上部选择tag 0.7.1即可。
考虑到国内的网速,所以建议直接下载zip压缩包。在页面右侧,选择Download ZIP。把0.7.1版本下载下来。
将ZIP压缩包上传到服务器(推荐使用Ubuntu),解压后即为Docker 源码。
我们下面的步骤是安装registry到本地服务器上,你也可以选择将source build成image,然后执行image。
安装registry到本地服务器的步骤:
Install the system requirements for building a Python library:
sudo apt-get install build-essential python-dev libevent-dev python-pip liblzma-dev
Then install the Registry app:
sudo pip install docker-registry
等待安装完成后,执行命令开始运行registry:
gunicorn --access-logfile - --debug -k gevent -b 0.0.0.0: -w docker_registry.wsgi:application
方法三:
同样基于git的源码,我们build成image,然后执行这个image。
在docker_registry目录里面:
docker build -t registry .
build执行完之后,同样执行:
docker run -d -p : registry
总结
方法一和方法三,均需要download 国外的一些images,因此国内的使用存在局限性。而方法二,完全不依赖国外数据,但需要一些docker操作基础和git操作基础。
大家在使用时,就需要考虑实际情况来选择安装方式了。
Docker学习总结之docker创建私有仓库(private Repositories)的更多相关文章
- docker基础——自定义镜像、创建私有仓库、查看 docker 运行状态
		
一.自定义镜像 1,案例1 要求:请自定义一个 docker 镜像,基于 hub.c.163.com/library/centos,要求创建出来的镜像在生成容器的时候,可以直接使用 ifconfig ...
 - docker创建私有仓库
		
由于网速和大中华局域网效果,使得我们在DockerHub下载镜像的速度很慢,甚至一些国内的镜像仓库,也感觉速度不是很好.所以,很有必要在本地或者一个我们访问很快速的地方(自己的云服务器)搭建一套镜像仓 ...
 - Docker学习总结(七)--Docker私有仓库
		
创建私有仓库 1) 拉取私有仓库镜像 docker pull registry 2)启动私有仓库容器 docker run -di --name-registry -p 5000:5000 regis ...
 - docker创建私有仓库及存储image
		
Docker官方的Docker hub尽管提供了有非常多image,也基本上包括了我们须要使用的,可是其訪问起来比較慢.假设自己要定制image.多台server之间的共享使用此image非常不方便. ...
 - Docker容器管理平台Humpback进阶-私有仓库
		
Docker私有仓库 在 Docker 中,当我们执行 docker pull xxx 的时候,可能会比较好奇,docker 会去哪儿查找并下载镜像呢? 它实际上是从 registry.hub.doc ...
 - [python](Docker SDK)上传镜像到私有仓库(tls、身份认证)
		
(Docker SDK)上传镜像到私有仓库(tls.身份认证) API:https://docker-py.readthedocs.io/en/stable/ 环境:python:3.7.3 配置参数 ...
 - docker for mac 创建私有仓库
		
拉取镜像 docker pull registry 运行registry run -d -p : -v /Users/huangenai/docker/registry:/var/lib/regist ...
 - 转 docker创建私有仓库和k8s中使用私有镜像
		
docker私有仓库建立 环境说明我们选取192.168.5.2做私有仓库地址yum install docker -y1.启动docker仓库端口服务 docker run -d -p 5000:5 ...
 - win10 下安装docker,创建镜像,push镜像到私有仓库,创建私有仓库,修改镜像仓库地址
		
通过连接下载window docker安装文件,https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.ex ...
 
随机推荐
- cmake 如何生成一个win32工程
			
只需要加上下面一句连接选项就可以了. IF(WIN32) SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:W ...
 - Android学习(二十一)OptionsMenu选项菜单
			
一.OptionsMenu选项菜单 在应用程序中点击功能按钮会弹出选项菜单,点击可以实现具体功能. 二.实现思路: 1.创建选项菜单: onCreateOptionsMenu(); 2.设置菜单项可用 ...
 - 解析Json数据
			
一.json数据 [{"}] 二.关键代码 public class MainActivity extends Activity { @Override protected void onC ...
 - C# Socket.Connect连接请求超时机制
			
介绍 您可能注意到了,.Net的System.Net.Sockets.TcpClient和System.Net.Sockets.Socket都没有直接为Connect/BeginConnect提供超时 ...
 - 使用Gulp定制前端开发环境
			
1.安装package.json中依赖了的组件 npm install 2.来到本地路径,创建工程配置文件 npm init 3.本地安装gulp npm install gulp --save-de ...
 - uva 12627 - Erratic Expansion(递归求解)
			
递归的边界条件写的多了--不是必需写呢么多的.. 不明确可共同探讨~ #include<cstdio> #include<iostream> #include<cmath ...
 - LeetCode题目:Generate Parentheses
			
原题地址:https://leetcode.com/problems/generate-parentheses/ 解决方法:回溯法 class Solution { private: vector&l ...
 - Spring MVC 学习笔记 spring mvc Schema-based configuration
			
Spring mvc 目前支持5个tag,分别是 mvc:annotation-driven,mvc:interceptors,mvc:view-controller, mvc:resources和m ...
 - Mysql 创建权限较小的用户(只对特定数据库有操作权限)
			
项目开发过程中,因为root的权限太大,可能对其他数据库造成修改.故创建一权限较小的用户,使其只能对特定的数据库操作,以保证数据安全. 主要语句如下: grant all on bos19.* to ...
 - 2.JAVA编程思想——一切都是对象
			
一切都是对象 欢迎转载.转载请标明出处:http://blog.csdn.net/notbaron/article/details/51040221 虽然以C++为基础,但 Java 是一种更纯粹的面 ...