在centos 7上安装本地dockerregistry

我正在尝试在CentOS 7机器上安装一个本地docker.ioregistry,请按照以下说明操作:

https://github.com/docker/docker-registry#quick-start

我跑(EDITED,只是为了显示docker正在运行):

# service docker restart && cd && docker run -p 5000:5000 registry 

几分钟后看到提示,我得到了一堆像这样的错误:

 [...] OSError: [Errno 2] No such file or directory: './registry._setup_database.lock' [2015-03-06 16:39:11 +0000] [13] [INFO] Worker exiting (pid: 13) [2015-03-06 16:39:11 +0000] [14] [INFO] Worker exiting (pid: 14) Traceback (most recent call last): File "/usr/local/bin/gunicorn", line 11, in <module> sys.exit(run()) File "/usr/local/lib/python2.7/dist-packages/gunicorn/app/wsgiapp.py", line 74, in run WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run() File "/usr/local/lib/python2.7/dist-packages/gunicorn/app/base.py", line 185, in run super(Application, self).run() File "/usr/local/lib/python2.7/dist-packages/gunicorn/app/base.py", line 71, in run Arbiter(self).run() File "/usr/local/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 196, in run self.halt(reason=inst.reason, exit_status=inst.exit_status) File "/usr/local/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 292, in halt self.stop() File "/usr/local/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 343, in stop time.sleep(0.1) File "/usr/local/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 209, in handle_chld self.reap_workers() File "/usr/local/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 459, in reap_workers raise HaltServer(reason, self.WORKER_BOOT_ERROR) gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3> 

编辑:

系统的细节:

 docker --version Docker version 1.3.2, build 39fa2fa/1.3.2 

系统:

 cat /etc/centos-release CentOS Linux release 7.0.1406 (Core) uname -a Linux denis1 3.10.0-123.20.1.el7.x86_64 #1 SMP Thu Jan 29 18:05:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux 

任何想法我可能做错了什么?

这个文件应该放在哪里? './registry._setup_database.lock'

EDITED2:

如果我在我的Ubuntu 14.10笔记本电脑上尝试,我通过ppa安装了一个新版本的docker,那么它的工作原理是:

 # Upgraded to docker 1.5 via a ppa package in my Ubuntu laptop: sudo add-apt-repository ppa:docker-maint/testing sudo apt-get update sudo apt-get install docker.io # pull registry latest sudo docker pull registry:latest latest: Pulling from registry fa4fd76b09ce: Downloading 6.931 MB/197.2 MB 3m10s 1c8294cc5160: Download complete 117ee323aaa9: Download complete fa4fd76b09ce: Pull complete fa4fd76b09ce: Download complete 1c8294cc5160: Download complete 117ee323aaa9: Download complete 2d24f826cb16: Download complete 777c3edddace: Download complete f06997673ad7: Download complete 7eafad9a1f16: Download complete daa8104aee86: Download complete 418dcd975ba2: Download complete 30bff528d188: Download complete a4f468439f7f: Download complete e5a8e33139de: Download complete 024a18254446: Download complete a68f5599e08a: Download complete 511136ea3c5a: Download complete Status: Downloaded newer image for registry:latest 

任何想法我应该怎么做才能在我的CentOS服务器上获得相同的结果? 有没有更新的docker客户端,我可以通过yum install获取CentOS 6?

禁用SELINUX和FireWalld。

SELINUX阻止某些命令的执行,因为SUDO会以某种方式抑制行为。

还要检查FireWallD。

docker版本或“最新”标签等的升级都不会解决您的问题,我试了一下…它与SELINUX和/或FireWallD …有关,如果可以的话,禁用。

通过将这个版本添加到yum.repos.d,我将docker版本升级到1.5.0:

 [virt7-testing] name=virt7-testing baseurl=http://cbs.centos.org/repos/virt7-testing/x86_64/os/ enabled=1 gpgcheck=0 

我觉得我们可以总结这样的事情:

“registry”的文档说它只支持docker 1.5。 你正在运行1.3,这之间有一个很大的跳跃。

支持的Docker版本

Docker版本1.5.0正式支持该映像。

支持旧版本(低至1.0)是尽力而为的。

在CentOS 6.5上,你可以从EPEL( Docker指令 ) yum install docker并获得Docker 1.5。 早于6.5,你必须yum install docker-io ,看起来1.4是EPEL的最新版本。

根据我的经验,Docker在RedHat系列系统上的支持比在Debian系列上的支持要差,但是在RH和Docker的最新版本中,这种差距已经被封闭了。