Deploy Private Docker Registry di Server Ubuntu 18.04
Deploy Private Docker Registry di Ubuntu 18.04. Di tutorial ini saya akan sharing mengenai bagaiman acara private docker registry di server Ubuntu. Docker registry adalah aplikasi yang mengelola dan menyimpan docker images. Hal ini berguna untuk memudahkan developer/sysadmin dalam proses deploy karena tidak perlu lagi melakukan build image setiap ingin melakukan deploy.
Docker sendiri menyediakan public Docker Registry bernama Docker Hub. Namun jika kasusnya adalah kalian membuild image yang tidak seharusnya bisa diakses oleh publik, solusinya adalah membuat server Docker Registry sendiri. Di tutorial ini saya akan share bagaimana cara men-deploy private Docker Registry di server Ubuntu 18.04, dengan docker-compose dan juga Nginx sebagai reverse proxy-nya.sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose
sudo usermod -aG docker $(whoami)
Setup Container Docker Registry
Buat direktori untuk menyimpan file konfigurasi maupun data dari docker registry.
mkdir docker-registry && cd $_
Didalam direktori docker-registry kita buat lagi dir data dan auth.
mkdir {data,auth}
Selanjutnya adalah mengatur autentifikasi. Disini kita gunakan http auth.
sudo apt install apache2-utils
cd auth
htpasswd -Bc .registry_auth username
.registry_auth adalah nama file passwd-nya, sementara untuk username silahkan sesuaikan sendiri. Untuk enkripsinya, docker registry hanya menerima bcrypt encryption, jadi kita tambahkan flag B.
Setelah file auth ditambahkan, sekarang kita buat file docker-composenya. Balik lagi ke direktori docker-registry lalu buat file docker-compose.yml. Isinya:
version: '3' services: registry: image: registry:2.7.1 container_name: docker-registry restart: always ports: - "127.0.0.1:5000:5000" environment: REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: /data REGISTRY_AUTH: htpasswd REGISTRY_AUTH_HTPASSWD_REALM: Registry REGISTRY_AUTH_HTPASSWD_PATH: /auth/.registry_auth volumes: - ./auth:/auth - ./data:/dataUntuk exposing port nya silahkan kalian sesuaikan sendiri.
docker-compose up -d
server { listen 80; server_name registry.linuxsec.org; return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name registry.linuxsec.org; server_tokens off; ssl_protocols TLSv1.2 TLSv1.3; # TLS 1.3 requires nginx >= 1.13.0 ssl_prefer_server_ciphers on; ssl_dhparam /etc/ssl/certs/dhparam.pem; # openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096 ssl_ciphers "EECDH+AESGCM:EDH+AESGCM"; ssl_ecdh_curve secp384r1; # Requires nginx >= 1.1.0 ssl_session_timeout 10m; ssl_session_cache shared:SSL:10m; ssl_session_tickets off; # Requires nginx >= 1.5.9 ssl_stapling on; # Requires nginx >= 1.3.7 ssl_stapling_verify on; # Requires nginx => 1.3.7 ssl_early_data off; # 0-RTT, enable if desired - Requires nginx >= 1.15.4 resolver 1.1.1.1 valid=300s; # Replace with your local resolver resolver_timeout 10s; # HTTP Security Headers ssl_certificate /etc/nginx/ssl-cert/linuxsec/fullchain.pem; ssl_certificate_key /etc/nginx/ssl-cert/linuxsec/privkey.pem; root /var/www/registry; access_log /var/log/nginx/registry_access.log; error_log /var/log/nginx/registry_error.log warn; index index.html; client_max_body_size 2000M; location / { proxy_pass http://localhost:5000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_http_version 1.1; proxy_pass_request_headers on; } # Allow Let's Encrypt location ~ /.well-known { allow all; } }Untuk SSLnya, kalian bisa gunakan Let's Encrypt.
docker login https://registry.domain.com
docker tag private-vpn registry.domain.com/private-vpn
docker push registry.domain.com/private-vpn
docker login https://registry.domain.com
docker pull registry.domain.com/private-vpn
Posting Komentar untuk "Deploy Private Docker Registry di Server Ubuntu 18.04"
Posting Komentar
Silahkan tinggalkan komentar jika ada masukan, pertanyaan, kritik ataupun dukungan. Namun pastikan untuk berkomentar secara sopan.