您好,登錄后才能下訂單哦!
本篇內容介紹了“如何使用docker registry搭建部署docker鏡像庫”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
我使用的是Centos 6.5 x64版的系統,docker registry使用python來編寫,對于系統環境的要求不會很苛刻。
在正式安裝前需要安裝幾個依賴,使用yum就可以完成了:
yum install python-devel libevent-devel python-setuptools gcc xz-devel
為了安全起見,我們可以添加一個用戶docker,使用這個非root用戶來允許docker registry程序,同時指定好docker鏡像的存儲位置,本處指定為/opt/docker_data/registry目錄:
useradd docker mkdir -p /opt/docker_data/registry chown -R docker.docker /opt/docker_data/registry
由于使用python來編寫,可以直接使用easy_install(或pip)來安裝docker-registry
easy_install docker-registry
使用easy_install安裝完成的docker-registry位于/usr/lib/python2.6/site-packages/docker_registry-0.7.3-py2.6.egg目錄,此時需要進入這個目錄下的config子目錄,從模板復制一個配置文件出來:
cd /usr/lib/python2.6/site-packages/docker_registry-0.7.3-py2.6.egg/config cp config_sample.yml config.yml
此時可以修改這個config.yml配置文件,需要注意修改以下的兩個地方:
配置sqlite數據庫位置 sqlalchemy_index_database: _env:SQLALCHEMY_INDEX_DATABASE:sqlite://///opt/docker_data/registry/docker-registry.db 配置本地存儲位置 local: &local storage: local storage_path: _env:STORAGE_PATH:/opt/docker_data/registry
為了方便使用,可以在本地dns服務器上注冊docker.knktc.com這個域名,并使用nginx來進行代理。
配置文件中加入以下語句:
#for docker upstream docker-registry { server localhost:5000; } server { listen 80; server_name docker.knktc.com; proxy_set_header Host $http_host; # required for docker client's sake proxy_set_header X-Real-IP $remote_addr; # pass on real client's IP client_max_body_size 0; # disable any limits to avoid HTTP 413 for large image uploads # required to avoid HTTP 411: see Issue #1486 (https://github.com/dotcloud/docker/issues/1486) chunked_transfer_encoding on; # location / { proxy_pass http://docker-registry; } }
nginx啟動之后,使用docker用戶執行以下的命令可以測試啟動:
/usr/bin/gunicorn --debug -k gevent -b 0.0.0.0:5000 -w 8 docker_registry.wsgi:application
此時可能會遇到數量眾多的import error,逐個使用easy_install 安裝缺失的模塊就可以了。最后在瀏覽器中訪問http://docker.knktc.com,如果看到以下的輸出,則表明docker registry安裝成功了:
"docker-registry server (dev) (v0.7.3)"
官方和其他的文檔都推薦使用supervisord來進行docker registry的進程監控,安裝supervisor后,在/etc/supervisord中加入以下語句即可:
[program:docker-registry] user=docker command=/usr/bin/gunicorn --debug -k gevent -b 0.0.0.0:5000 -w 8 docker_registry.wsgi:application redirect_stderr=true stderr_logfile=/var/log/supervisor/docker-registry-error.log stdout_logfile=/var/log/supervisor/docker-registry.log autostart=true autorestart=true
docker registry搭建完畢之后就可以使用tag命令將本地的鏡像設置為使用本地的docker registry來存儲了,一個簡單的例子如下:
#將本地的localimage鏡像設置為存儲到docker registry上,命名為knktc/testimage docker tag localimage docker.knktc.com/knktc/testimage #上傳這個鏡像到docker registry中 docker push docker.knktc.com/knktc/testimage #換一臺機器來pull這個鏡像 docker pull docker.knktc.com/knktc/testimage
“如何使用docker registry搭建部署docker鏡像庫”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。