您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Docker的Registry私有倉庫如何搭建”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Docker的Registry私有倉庫如何搭建”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
本次搭建
docker-registry server (dev) (v0.9.0)
添加docker用戶和目錄
為了安全起見,我們可以添加一個用戶docker,使用這個非root用戶來允許docker registry程序,同時指定好docker鏡像的存儲位置,本處指定為/home/docker_registry目錄
useradd docker mkdir -p /home/docker_registry chown -r docker.docker /home/docker_registry/
從github克隆最新版本registry, 進入這個目錄下的config子目錄,從模板復制一個配置文件出來:
git clone https://github.com/docker/docker-registry.git cd docker-registry/config cp config_sample.yml config.yml
此時可以修改這個config.yml配置文件,需要注意修改以下的兩個地方:
#配置sqlite數據庫位置 sqlalchemy_index_database: _env:sqlalchemy_index_database:sqlite:////home/docker_registry/docker-registry.db #配置本地存儲位置 local: &local storage: local storage_path: _env:storage_path:/home/docker_registry
安裝一些必要軟件包和一些 docker-registry 需要用到的 python 工具和庫:
apt-get update apt-get install build-essential python-dev liblzma-dev libevent-dev python-pip libssl-dev
使用apt-get安裝軟件包時經常會提示讓你插入netinst的光盤:
media change: please insert the disc labeled
當沒有時就無法進行安裝了, 這時可以打開文件/etc/apt/sources.list文件,注釋掉cdrom那一行,
然后再執行apt-get update更新下deb倉庫,
這樣以后再使用apt-get安裝時就不會再搜尋cdrom了
修改hosts文件加上域名
vim /etc/hosts 127.0.0.1 docker.registry.com
安裝nginx
apt-get install nginx #配置nginx config vim /etc/nginx/nginx.conf
user www-data; worker_processes 4; pid /run/nginx.pid; events { worker_connections 768; # multi_accept on; } http { ## # basic settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # logging settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # gzip settings ## gzip on; gzip_disable "msie6"; # gzip_vary on; # gzip_proxied any; # gzip_comp_level 6; # gzip_buffers 16 8k; # gzip_http_version 1.1; # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; ## # nginx-naxsi config ## # uncomment it if you installed nginx-naxsi ## #include /etc/nginx/naxsi_core.rules; ## # nginx-passenger config ## # uncomment it if you installed nginx-passenger ## #passenger_root /usr; #passenger_ruby /usr/bin/ruby; ## # virtual host configs ## include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; upstream docker-registry { server localhost:5000; } server { listen 80; server_name docker.registry.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
service nginx start
訪問瀏覽器測試
http://192.168.124.130/
安裝python依賴
cd /opt/docker-registry pip install .
若出現:cannot connect to proxy. socket error: [errno -2] name or service not known.
手動安裝依賴包 加代理參數
pip install -i http://pypi.v2ex.com/simple . #注銷下面的 pip install . 安裝全部 --pip install -i http://pypi.v2ex.com/simple gunicorn
建立軟連接
ln -s /usr/local/bin/gunicorn /usr/bin/gunicorn
nginx啟動之后,使用docker用戶執行以下的命令可以測試啟動:
gunicorn --access-logfile - --error-logfile - -k gevent -b 0.0.0.0:5000 -w 8 --max-requests 100 docker_registry.wsgi:application
訪問瀏覽器
http://docker.registry.com
如果看到以下的輸出,則表明docker registry安裝成功
給目錄下數據庫賦權限,不然上傳文件時會不能寫數據庫
chmod 777 /home/docker_registry/repositories/docker-registry.db
使用supervisord來進行進程的監控
apt-get install supervisor
配置supervisor [docker-registry]
vim /etc/supervisor/conf.d/docker-registry.conf
[program:docker-registry] directory=/opt/docker-registry #使用docker用戶 user=docker command=/usr/local/bin/gunicorn --access-logfile - --error-logfile - -k gevent -b 0.0.0.0:5000 -w 8 --max-requests 100 --graceful-timeout 3600 -t 3600 docker_registry.wsgi:application redirect_stderr=true stderr_logfile=none stdout_logfile=/var/log/supervisor/docker-registry.log autostart=true autorestart=true
#重新加載 supervisor 配置: supervisorctl supervisor> reread docker-registry: available supervisor> update docker-registry: added process group supervisor> status docker-registry running pid 4371, uptime 0:00:01
查看端口占用
netstat -apn | grep 5000
啟動重啟
service supervisor start
#/etc/init.d/supervisord {start|stop|restart|force-reload|status|force-stop}
讀到這里,這篇“Docker的Registry私有倉庫如何搭建”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。