您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“如何使用docker registry搭建部署docker鏡像庫(kù)”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
我使用的是Centos 6.5 x64版的系統(tǒng),docker registry使用python來(lái)編寫(xiě),對(duì)于系統(tǒng)環(huán)境的要求不會(huì)很苛刻。
在正式安裝前需要安裝幾個(gè)依賴,使用yum就可以完成了:
yum install python-devel libevent-devel python-setuptools gcc xz-devel
為了安全起見(jiàn),我們可以添加一個(gè)用戶docker,使用這個(gè)非root用戶來(lái)允許docker registry程序,同時(shí)指定好docker鏡像的存儲(chǔ)位置,本處指定為/opt/docker_data/registry目錄:
useradd docker mkdir -p /opt/docker_data/registry chown -R docker.docker /opt/docker_data/registry
由于使用python來(lái)編寫(xiě),可以直接使用easy_install(或pip)來(lái)安裝docker-registry
easy_install docker-registry
使用easy_install安裝完成的docker-registry位于/usr/lib/python2.6/site-packages/docker_registry-0.7.3-py2.6.egg目錄,此時(shí)需要進(jìn)入這個(gè)目錄下的config子目錄,從模板復(fù)制一個(gè)配置文件出來(lái):
cd /usr/lib/python2.6/site-packages/docker_registry-0.7.3-py2.6.egg/config cp config_sample.yml config.yml
此時(shí)可以修改這個(gè)config.yml配置文件,需要注意修改以下的兩個(gè)地方:
配置sqlite數(shù)據(jù)庫(kù)位置 sqlalchemy_index_database: _env:SQLALCHEMY_INDEX_DATABASE:sqlite://///opt/docker_data/registry/docker-registry.db 配置本地存儲(chǔ)位置 local: &local storage: local storage_path: _env:STORAGE_PATH:/opt/docker_data/registry
為了方便使用,可以在本地dns服務(wù)器上注冊(cè)docker.knktc.com這個(gè)域名,并使用nginx來(lái)進(jìn)行代理。
配置文件中加入以下語(yǔ)句:
#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啟動(dòng)之后,使用docker用戶執(zhí)行以下的命令可以測(cè)試啟動(dòng):
/usr/bin/gunicorn --debug -k gevent -b 0.0.0.0:5000 -w 8 docker_registry.wsgi:application
此時(shí)可能會(huì)遇到數(shù)量眾多的import error,逐個(gè)使用easy_install 安裝缺失的模塊就可以了。最后在瀏覽器中訪問(wèn)http://docker.knktc.com,如果看到以下的輸出,則表明docker registry安裝成功了:
"docker-registry server (dev) (v0.7.3)"
官方和其他的文檔都推薦使用supervisord來(lái)進(jìn)行docker registry的進(jìn)程監(jiān)控,安裝supervisor后,在/etc/supervisord中加入以下語(yǔ)句即可:
[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命令將本地的鏡像設(shè)置為使用本地的docker registry來(lái)存儲(chǔ)了,一個(gè)簡(jiǎn)單的例子如下:
#將本地的localimage鏡像設(shè)置為存儲(chǔ)到docker registry上,命名為knktc/testimage docker tag localimage docker.knktc.com/knktc/testimage #上傳這個(gè)鏡像到docker registry中 docker push docker.knktc.com/knktc/testimage #換一臺(tái)機(jī)器來(lái)pull這個(gè)鏡像 docker pull docker.knktc.com/knktc/testimage
“如何使用docker registry搭建部署docker鏡像庫(kù)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。