Docker : रजिस्ट्री का प्रयोग करें2023/09/04 |
Docker छवियों के लिए निजी रजिस्ट्री बनाने के लिए Docker-Registry स्थापित करें।
|
|
[1] | रजिस्ट्री स्थापित करें। |
root@dlp:~# apt -y install docker-registry
|
[2] | रजिस्ट्री कॉन्फ़िगर करें। यह HTTP कनेक्शन और नो-ऑथेंटिकेशन का उपयोग करने के लिए सेटिंग्स है। |
root@dlp:~#
vi /etc/docker/registry/config.yml # [auth] अनुभाग पर इस प्रकार टिप्पणी करें version: 0.1 log: fields: service: registry storage: cache: blobdescriptor: inmemory filesystem: rootdirectory: /var/lib/docker-registry delete: enabled: true http: addr: :5000 headers: X-Content-Type-Options: [nosniff] #auth: # htpasswd: # realm: basic-realm # path: /etc/docker/registry health: storagedriver: enabled: true interval: 10s threshold: 3
root@dlp:~#
systemctl restart docker-registry
# किसी भी ग्राहक से पहुंच की संभावना को सत्यापित करें # HTTP कनेक्शन के लिए, इसे [insecure-registries] सेटिंग जोड़ने की आवश्यकता है
root@dlp:~#
vi /etc/docker/daemon.json # नया निर्माण # HTTP कनेक्शन की अनुमति देने के लिए होस्ट जोड़ें { "insecure-registries": [ "docker.internal:5000", "dlp.srv.world:5000" ] }
root@dlp:~#
systemctl restart docker
# [push] लोकलहोस्ट से root@dlp:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE srv.world/ubuntu-apache2 latest b7891f747bd5 18 hours ago 227MB srv.world/ubuntu-nginx latest 51f5190bb9d9 18 hours ago 170MB ubuntu latest 2dc39ba059dc 6 days ago 77.8MBroot@dlp:~# docker tag ubuntu dlp.srv.world:5000/ubuntu:my-registry root@dlp:~# docker push dlp.srv.world:5000/ubuntu:my-registry root@dlp:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE srv.world/ubuntu-apache2 latest b7891f747bd5 18 hours ago 227MB srv.world/ubuntu-nginx latest 51f5190bb9d9 18 hours ago 170MB dlp.srv.world:5000/ubuntu my-registry 2dc39ba059dc 6 days ago 77.8MB ubuntu latest 2dc39ba059dc 6 days ago 77.8MB # [pull] दूसरे नोड से root@node01:~# docker pull dlp.srv.world:5000/ubuntu:my-registry root@node01:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE dlp.srv.world:5000/ubuntu my-registry 2dc39ba059dc 6 days ago 77.8MB |
[3] | मूल प्रमाणीकरण सक्षम करने के लिए, निम्नानुसार कॉन्फ़िगर करें। |
root@dlp:~#
apt -y install apache2-utils
root@dlp:~#
vi /etc/docker/registry/config.yml # [auth] अनुभाग पर टिप्पणी हटाएँ और passwd फ़ाइल निर्दिष्ट करें
.....
.....
auth:
htpasswd:
realm: basic-realm
path: /etc/docker/registry/.htpasswd
.....
.....
root@dlp:~#
systemctl restart docker-registry
# उपयोगकर्ता जोड़ें # आरंभिक फ़ाइल निर्माण में [-c] जोड़ें root@dlp:~# htpasswd -Bc /etc/docker/registry/.htpasswd ubuntu New password: Re-type new password: Adding password for user ubuntu # पहुंच संभव सत्यापित करें # an error is shown if access with no-authentication root@node01:~# docker pull dlp.srv.world:5000/ubuntu:my-registry Error response from daemon: Head http://dlp.srv.world:5000/v2/nginx/manifests/my-registry: no basic auth credentials # [htpasswd] के साथ जोड़े गए उपयोगकर्ता द्वारा प्रमाणित करें root@node01:~# docker login dlp.srv.world:5000
Username: ubuntu
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
root@node01:~# docker pull dlp.srv.world:5000/ubuntu:my-registry root@node01:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE dlp.srv.world:5000/ubuntu my-registry 2dc39ba059dc 6 days ago 77.8MB |
[4] | HTTPS के माध्यम से एक्सेस करने और Let's Encrypt इत्यादि जैसे वैध प्रमाणपत्रों का उपयोग करने के लिए, निम्नानुसार कॉन्फ़िगर करें। यह उदाहरण उस परिवेश पर आधारित है जिसे [/etc/letsencrypt/live/dlp.srv.world] के अंतर्गत प्रमाणपत्र प्राप्त हुए हैं। |
root@dlp:~# mkdir /etc/docker/certs.d root@dlp:~# cp -p /etc/letsencrypt/live/dlp.srv.world/{fullchain,privkey}.pem /etc/docker/certs.d/ root@dlp:~# chown docker-registry /etc/docker/certs.d/{fullchain,privkey}.pem
root@dlp:~#
vi /etc/docker/registry/config.yml # [http] अनुभाग के अंतर्गत [tls] अनुभाग इस प्रकार जोड़ें
.....
.....
http:
addr: :5000
tls:
certificate: /etc/docker/certs.d/fullchain.pem
key: /etc/docker/certs.d/privkey.pem
headers:
X-Content-Type-Options: [nosniff]
.....
.....
root@dlp:~#
systemctl restart docker-registry
# पहुंच संभव सत्यापित करें # HTTPS कनेक्शन पर, इसे डॉकर पर [insecure-registries] जोड़ने की आवश्यकता नहीं है root@node01:~# docker pull dlp.srv.world:5000/ubuntu:my-registry root@node01:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 7e0aa2d69a15 2 weeks ago 72.7MB dlp.srv.world:5000/ubuntu my-registry 62d49f9bab67 4 weeks ago 133MB |
[5] | HTTPS के माध्यम से पहुंचने और स्व-हस्ताक्षरित प्रमाणपत्रों का उपयोग करने के लिए, निम्नानुसार कॉन्फ़िगर करें। यह उदाहरण उस परिवेश पर आधारित है जिसमें प्रमाणपत्र [/etc/ssl/private] के अंतर्गत बनाए गए हैं। |
root@dlp:~# mkdir -p /etc/docker/certs.d/dlp.srv.world:5000 root@dlp:~# cp -p /etc/ssl/private/server.{crt,key} /etc/docker/certs.d/dlp.srv.world:5000/ root@dlp:~# chown docker-registry /etc/docker/certs.d/dlp.srv.world:5000/server.{crt,key}
root@dlp:~#
vi /etc/docker/registry/config.yml # [http] अनुभाग के अंतर्गत [tls] अनुभाग इस प्रकार जोड़ें
.....
.....
http:
addr: :5000
tls:
certificate: /etc/docker/certs.d/dlp.srv.world:5000/server.crt
key: /etc/docker/certs.d/dlp.srv.world:5000/server.key
headers:
X-Content-Type-Options: [nosniff]
.....
.....
root@dlp:~#
systemctl restart docker-registry
# पहुंच संभव सत्यापित करें # स्वहस्ताक्षरित प्रमाणपत्र के कारण त्रुटि दिखाई गई है root@node01:~# docker pull dlp.srv.world:5000/ubuntu:my-registry Error response from daemon: Get https://dlp.srv.world:5000/v2/: x509: certificate signed by unknown authority # क्लाइंट को रजिस्ट्री सर्वर का प्रमाणपत्र कॉपी करें root@node01:~# mkdir -p /etc/docker/certs.d/dlp.srv.world:5000 root@node01:~# scp root@dlp.srv.world:"/etc/docker/certs.d/dlp.srv.world:5000/server.crt" /etc/docker/certs.d/dlp.srv.world:5000/ca.crt docker pull dlp.srv.world:5000/ubuntu:my-registry root@node01:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 7e0aa2d69a15 2 weeks ago 72.7MB dlp.srv.world:5000/ubuntu my-registry 62d49f9bab67 4 weeks ago 133MB |
Sponsored Link |
|