编程是一门艺术

raptor.zh(at)gmail.com Creative Commons License
本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。

archives 存档

01 Jan - 31 Dec 2018
01 Jan - 31 Dec 2017
01 Jan - 31 Dec 2016
01 Jan - 31 Dec 2015
01 Jan - 31 Dec 2014
01 Jan - 31 Dec 2013
01 Jan - 31 Dec 2012
01 Jan - 31 Dec 2011
01 Jan - 31 Dec 2010
01 Jan - 31 Dec 2009
01 Jan - 31 Dec 2008
01 Jan - 31 Dec 2007
01 Jan - 31 Dec 2006
01 Jan - 31 Dec 2005
01 Jan - 31 Dec 2004
01 Jan - 31 Dec 2003
01 Jan - 31 Dec 2002
01 Jan - 31 Dec 2001
01 Jan - 31 Dec 2000
01 Jan - 31 Dec 1999

--

links 链接

--

docker实践入门之六:Registry

自建仓库

之前说过,我们可以直接从dockerhub上抓取别人做好的image,也可以把自己做的image上传去共享。

但是如果要做一些自己用的image呢?那就需要自建registry。

官方的registry本身做成了一个image,所以安装使用非常简单:

docker pull registry
docker run -d -p 5000:5000 --name registry registry:2

这样你就有了一个 localhost:5000 的本地registry,如果要开放出去用的话,则必须使用https,简单的方法就是用nginx做一层反向代理,加上https支持即可。

# 上传一个image
docker tag image_name localhost:5000/image_name
docker push localhost:5000/image_name
# 下拉一个image
docker pull localhost:5000/image_name

如果是经过https代理,则把localhost:5000换成相应的域名即可。

加上用户权限控制

默认的registry服务是开放的,可供任何人访问,这显然不是通常自建仓库想要的,所以需要加上用户权限管理。

一个基本的用户系统类似于web server的basic auth。

先创建一个htpasswd文件,记录用户信息:

mkdir /var/auth
docker run --entrypoint htpasswd registry -Bbn    >> /var/auth/auth_reg

其中/var/auth/auth_reg是用于保存用户信息的文件。则是要创建的用户名和密码。

然后这样启动registry即可:

docker run -d -p 5000:5000 --restart=always -v /var/auth:/var/auth
    -e "REGISTRY_AUTH=htpasswd" \
    -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
    -e REGISTRY_AUTH_HTPASSWD_PATH=/var/auth/auth_reg \
    registry

现在就不能直接push和pull了,需要先登录一下:

docker login localhost:5000

输入用户名密码,之后登录信息会被保存在~/.docker/config.json里,并且会有一个安全警告,建议使用更安全的保存方式,比如Mac OS的keychain。

因为登录信息已经保存,所以后就可以直接push和pull了。

推送到[go4pro.org]

Trackback link:

Please enable javascript to generate a trackback url

No trackbacks

评论(0)


 
   
 
  表情图标 

 


提示: 除了 <b> 和 <i> 之外,其他的Html标签都将从您的评论中去除.url或mail地址会被自动加上链接.