歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 搭建自己的 Docker 私有倉庫服務

搭建自己的 Docker 私有倉庫服務

日期:2017/2/28 14:28:48   编辑:Linux教程

說明:僅供參考,這個方案可能已經過時了,docker-registry官方github上寫的是docker run -p 5000:5000。

還有如何搜索私有倉庫服務內的鏡像?可以通過http://192.168.2.45/v1/search來獲取私有倉庫內的鏡像。

關於 Docker 的介紹這裡就省了,Docker 在其相關領域的火爆程度不亞於今年汽車行業裡的特斯拉,docCloud 甚至把公司名都改成了 Docker, Inc. 好東西總是傳播很快,我們現在已經有客戶在 VPS 上用 Docker 來部署應用了。不了解 Docker 的小伙伴們可以看看 使用 Docker/LXC 迅速啟動一個桌面系統 開頭部分的介紹(見 http://www.linuxidc.com/Linux/2014-08/105652.htm)。

和初次接觸 Xen/KVM 虛擬技術的體驗不同,Docker 不用自己動手制作鏡像,官方已經提供了很多版本的 Linux 鏡像,直接從官方倉庫(Public Repositories)下載就可以了。如果考慮到安全性和速度,我們可能會想在自己局域網裡架設一個私有倉庫(Private Repositories)來放我們自己的鏡像,Docker-Registry 正是我們需要的工具。

用 git 下載源碼後修改配置文件 config.yml,把 storage_path 部分改成 Docker 鏡像倉庫的存放地點:

$ git clone https://github.com/dotcloud/docker-registry
$ cd docker-registry

$ cp config_sample.yml config.yml
$ vi config.yml
...
# This is the default configuration when no flavor is specified
dev:
    storage: local
    storage_path: /home/linuxidc/registry
    loglevel: debug
...

$ mkdir /home/linuxidc/registry

安裝一些必要軟件包和一些 Docker-Registry 需要用到的 Python 工具和庫:

$ sudo apt-get install build-essential python-dev libevent-dev python-pip libssl-dev

$ sudo pip install -r requirements.txt

Docker-Registry 實際上是個基於 Flask 的 web app,安裝成功後就可以這樣運行了:

$ sudo gunicorn --access-logfile - --debug -k gevent -b 0.0.0.0:80 -w 1 wsgi:application

打開浏覽器,訪問 IP 地址就可以看到 docker-registry 私有倉庫在運行了:

查看一下現有系統上已經有了哪些鏡像:

$ sudo docker images
REPOSITORY      TAG        ID              CREATED         SIZE
linuxidc/Ubuntu    latest     936a54e8a345    2 weeks ago     12.29 kB (virtual 327.8 MB)
ubuntu          latest     8dbd9e392a96    6 months ago    131.5 MB (virtual 131.5 MB)
ubuntu          precise    8dbd9e392a96    6 months ago    131.5 MB (virtual 131.5 MB)
ubuntu          quantal    b750fe79269d    7 months ago    24.65 kB (virtual 180.1 MB)

我們打算把 linuxidc/ubuntu 這個鏡像(ID 是 936a54e8a345)上傳(push)到我們剛創建的私有倉庫裡(這個私有倉庫的 IP 地址是 192.168.2.45),會看到提示 Username/Password,初次 push 的話,可以自己設置用戶名和密碼:

$ sudo docker tag 936a54e8a345 192.168.2.45/linuxidc
$ sudo docker push 192.168.2.45/linuxidc
Username: linuxidc
Password:
Email: [email protected]
Account created. Please use the confirmation link we sent to your e-mail to activate it.
The push refers to a repository [192.168.2.45/linuxidc] (len: 1)
Processing checksums
Sending image list
Pushing repository 192.168.2.45/linuxidc (1 tags)
Pushing 8dbd9e392a964056420e5d58ca5cc376ef18e2de93b5cc90e868a1bbc8318c1c
Buffering to disk 58266504/? (n/a)
Pushing 58.27 MB/58.27 MB (100%)

完成 push 後,我們的私有倉庫就有了第一個鏡像了:

$ sudo docker images
REPOSITORY          TAG      ID             CREATED        SIZE
linuxidc/ubuntu        latest   936a54e8a345   2 weeks ago    12.29 kB (virtual 327.8 MB)
ubuntu              latest   8dbd9e392a96   6 months ago   131.5 MB (virtual 131.5 MB)
ubuntu              precise  8dbd9e392a96   6 months ago   131.5 MB (virtual 131.5 MB)
ubuntu              quantal  b750fe79269d   7 months ago   24.65 kB (virtual 180.1 MB)
192.168.2.45/linuxidc  latest   936a54e8a345   2 weeks ago    12.29 kB (virtual 327.8 MB)

以後只要 docker pull 192.168.2.45/linuxidc 就可以從我們自己的私有倉庫下載和運行鏡像了,本地網絡速度當然會快很多。

Docker的搭建Gitlab CI 全過程詳解 http://www.linuxidc.com/Linux/2013-12/93537.htm

Docker 和一個正常的虛擬機有何區別? http://www.linuxidc.com/Linux/2013-12/93740.htm

在 Docker 中使用 MySQL http://www.linuxidc.com/Linux/2014-01/95354.htm

Docker 將改變所有事情 http://www.linuxidc.com/Linux/2013-12/93998.htm

Docker安裝應用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm

Docker 的詳細介紹:請點這裡
Docker 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved